るりまサーチ

最速Rubyリファレンスマニュアル検索!
111件ヒット [1-100件を表示] (0.215秒)
トップページ > クエリ:to_i[x] > クエリ:struct[x]

別のキーワード

  1. _builtin new
  2. _builtin inspect
  3. _builtin []
  4. _builtin to_s
  5. _builtin each

検索結果

<< 1 2 > >>

Fiddle::CStruct#to_i -> Integer (21101.0)

保持している構造体の先頭アドレスを整数で返します。

保持している構造体の先頭アドレスを整数で返します。

Fiddle::Importer#struct(signature) -> Class (18125.0)

C の構造体型に対応する Ruby のクラスを構築して返します。

...れを
配列で signature に渡してデータを定義します。例えば C における
struct
timeval {
long tv_sec;
long tv_usec;
};
という構造体型に対応して
Timeval = struct(["long tv_sec", "long tv_usec"])
として構造体に対応するクラスを生成しま...
...メソッドが定義されています
* クラスメソッド malloc
* initialize
* to_ptr
* to_i
* 構造体の各メンバへのアクセサ
返されるクラスは Fiddle::CStruct を継承しています。詳しくは
そちらを参照してください。


@param signature 構...
...require 'fiddle/import'

module M
extend Fiddle::Importer
dlload "libc.so.6"
extern "int gettimeofday(void*, void*)"
Timeval = struct(["long tv_sec", "long tv_usec"])
end

time = M::Timeval.malloc
M.gettimeofday(time, Fiddle::NULL)
p time.tv_sec
p time.tv_usec...

1.6.8から1.8.0への変更点(まとめ) (102.0)

1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))

...fix として 0d が追加されました。
8進リテラルの prefix として 0 以外に 0o が追加されました。

Integer(), String#to_i、String#oct もこの prefix を認識します。

: ((<メソッド引数の & 修飾|メソッド呼び出し/イテレータ>)) [compat]
: ((<...
...::Stat/rdev_major>)) [new]
: ((<File::Stat#rdev_minor|File::Stat/rdev_minor>)) [new]

追加

=== Float

: ((<Numeric#to_int|Numeric/to_int>)) [new]
: ((<Float#to_int|Numeric/to_int>)) [new]

追加。

=== Hash

: ((<Hash#merge|Hash/merge>)) [new]
: ((<Hash#merge!|Hash/merge!>)) [new]

追加...
...なりました。

: ((<String#insert|String/insert>)) [new]

追加

(({str[n, 0] = other})) と同じ(ただし self を返す)

=== Struct

: ((<Struct/each_pair>)) [new]

追加。

=== Symbol

: ((<Symbol/Symbol.all_symbols>)) [new]
追加 ((<ruby-dev:12921>))

=== SystemCallError...

fiddle/import (30.0)

fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。

...er
dlload "libc.so.6"
QsortCallback = bind("void *qsort_callback(void*, void*)"){|a, b|
a0 = Fiddle.dlunwrap(a.ptr.to_i)
b0 = Fiddle.dlunwrap(b.ptr.to_i)
a0 <=> b0
}
extern 'void qsort(void *, int, int, void *)'
end

buff = [Time.at(1), Time.now, Time.at(100),...
...t).to_i } #=> [1, 10, 100, 1241603848]

==== 複雑な構造体を定義したい

構造体をメンバとして持つ構造体を Fiddle::Importer#struct を使って定義することは残念ながらできません。
自力でメンバを展開してから Fiddle::Importer#struct...

Array#pack(template) -> String (12.0)

配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。

...byname("localhost")
address_list.find {|address| address.size == 4 }.unpack("C4").join(".")
# => "127.0.0.1"

"127.0.0.1".split(".").collect {|c| c.to_i}.pack("C4")
# => "\x7F\x00\x00\x01"
//}

: sockaddr_in 構造体
//emlist[][ruby]{
require 'socket'
[Socket::AF_INET,
Socket.getservbyname('echo')...
...x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00".unpack("p") # => [nil]
//}

: 構造体のアドレス

例えば、
//emlist{
struct
{
int a;
short b;
long c;
} v = {1,2,3};
//}
を表す文字列は
//emlist[][ruby]{
v = [1,2,3].pack("i!s!...

絞り込み条件を変える

Array#pack(template, buffer: String.new) -> String (12.0)

配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。

...byname("localhost")
address_list.find {|address| address.size == 4 }.unpack("C4").join(".")
# => "127.0.0.1"

"127.0.0.1".split(".").collect {|c| c.to_i}.pack("C4")
# => "\x7F\x00\x00\x01"
//}

: sockaddr_in 構造体
//emlist[][ruby]{
require 'socket'
[Socket::AF_INET,
Socket.getservbyname('echo')...
...x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00".unpack("p") # => [nil]
//}

: 構造体のアドレス

例えば、
//emlist{
struct
{
int a;
short b;
long c;
} v = {1,2,3};
//}
を表す文字列は
//emlist[][ruby]{
v = [1,2,3].pack("i!s!...

NEWS for Ruby 3.0.0 (12.0)

NEWS for Ruby 3.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。

...t.
* OpenStruct
* Initialization is no longer lazy. 12136
* Builtin methods can now be overridden safely. 15409
* Implementation uses only methods ending with `!`.
* Ractor compatible.
* Improved support for YAML. 8382
* Use officially discouraged. Read OpenStruct@Caveats s...
...s`, `#frozen?`
* `Integer`: `#-@`, `#~`, `#abs`, `#bit_length`, `#even?`, `#integer?`, `#magnitude`, `#odd?`, `#ord`, `#to_i`, `#to_int`, `#zero?`
* `Struct`: reader methods for 10th or later members
* Constant references are inlined.
* Always generate appropriate code for `=...

String#unpack(template) -> Array (12.0)

Array#pack で生成された文字列を テンプレート文字列 template にしたがってアンパックし、 それらの要素を含む配列を返します。

...byname("localhost")
address_list.find {|address| address.size == 4 }.unpack("C4").join(".")
# => "127.0.0.1"

"127.0.0.1".split(".").collect {|c| c.to_i}.pack("C4")
# => "\x7F\x00\x00\x01"
//}

: sockaddr_in 構造体
//emlist[][ruby]{
require 'socket'
[Socket::AF_INET,
Socket.getservbyname('echo')...
...x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00".unpack("p") # => [nil]
//}

: 構造体のアドレス

例えば、
//emlist{
struct
{
int a;
short b;
long c;
} v = {1,2,3};
//}
を表す文字列は
//emlist[][ruby]{
v = [1,2,3].pack("i!s!...

bigdecimal (12.0)

bigdecimal は浮動小数点数演算ライブラリです。 任意の精度で 10 進表現された浮動小数点数を扱えます。

...234567890.123456789"
//}

これは、String#* の内部で、BigDecimal が暗黙的に Integer に変換された結果です。

===[a:internal_structure] 内部構造

BigDecimal内部で浮動小数点は構造体(Real)で表現されます。
そのうち仮数部は unsigned long の配列 (...
...要素には最大で 4 桁の数字が格納されます。

浮動小数点構造体 (Real) は以下のようになっています。

typedef struct {
unsigned long MaxPrec; // 最大精度(frac[]の配列サイズ)
unsigned long Prec; // 精度(frac[]の使用サイズ)
shor...
...k,sig)
pi = pi + u
k = k + two
end
pi
end

if $0 == __FILE__
if ARGV.size == 1
puts "PI("+ARGV[0]+"):"
puts big_pi(ARGV[0].to_i)
else
puts "TRY: ruby pi.rb 1000"
end
end
//}

=== その他

以下のメソッド以外にも、(C ではない) Ruby ソースの形で...

fiddle (12.0)

*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。

...

require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "libc.so.6"
extern('int gettimeofday(void *, void *)')
Timeval = struct( ["long tv_sec",
"long tv_usec"])
end

timeval = M::Timeval.malloc
e = M.gettimeofday(timeval, nil)

if e == 0
p tim...
...スとみなされます。
to_ptr を持っているならば、それを呼びだし Fiddle::Pointer に
変換したものを用います。
to_i
を持っているならば、それを呼びだし結果の整数を
アドレスと見なします

: (unsigned) char/short/int/long/long...

絞り込み条件を変える

<< 1 2 > >>