別のキーワード
種類
- 文書 (101)
- インスタンスメソッド (12)
- ライブラリ (12)
- 特異メソッド (4)
ライブラリ
- ビルトイン (4)
-
fiddle
/ import (12)
クラス
- Struct (4)
モジュール
-
Fiddle
:: Importer (12)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (12) - Marshal フォーマット (12)
-
NEWS for Ruby 2
. 0 . 0 (12) -
NEWS for Ruby 2
. 5 . 0 (8) -
NEWS for Ruby 3
. 0 . 0 (5) -
NEWS for Ruby 3
. 1 . 0 (4) - Ruby用語集 (12)
- [] (1)
- new (3)
-
ruby 1
. 6 feature (12) -
ruby 1
. 8 . 2 feature (12) -
ruby 1
. 9 feature (12) - yaml (12)
検索結果
先頭5件
-
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......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... -
Struct
. [](*args) -> Struct (9145.0) -
(このメソッドは Struct の下位クラスにのみ定義されています) 構造体オブジェクトを生成して返します。
...(このメソッドは Struct の下位クラスにのみ定義されています)
構造体オブジェクトを生成して返します。
@param args 構造体の初期値を指定します。メンバの初期値は指定されなければ nil です。
@return 構造体クラスのインス......タンス。
@raise ArgumentError 構造体のメンバの数よりも多くの引数を指定した場合に発生します。
//emlist[例][ruby]{
Foo = Struct.new(:foo, :bar)
foo = Foo.new(1)
p foo.values # => [1, nil]
//}... -
Struct
. new(*args) -> Struct (9145.0) -
(このメソッドは Struct の下位クラスにのみ定義されています) 構造体オブジェクトを生成して返します。
...(このメソッドは Struct の下位クラスにのみ定義されています)
構造体オブジェクトを生成して返します。
@param args 構造体の初期値を指定します。メンバの初期値は指定されなければ nil です。
@return 構造体クラスのインス......タンス。
@raise ArgumentError 構造体のメンバの数よりも多くの引数を指定した場合に発生します。
//emlist[例][ruby]{
Foo = Struct.new(:foo, :bar)
foo = Foo.new(1)
p foo.values # => [1, nil]
//}... -
Struct
. new(*args , keyword _ init: nil) -> Class (9140.0) -
Struct クラスに新しいサブクラスを作って、それを返します。
...
Struct クラスに新しいサブクラスを作って、それを返します。
サブクラスでは構造体のメンバに対するアクセスメソッドが定義されています。
//emlist[例][ruby]{
dog = Struct.new("Dog", :name, :age)
fred = dog.new("fred", 5)
fred.age = 6
printf "......ださい。
//emlist[例][ruby]{
Point = Struct.new(:x, :y, keyword_init: true) # => Point(keyword_init: true)
Point.new(x: 1, y: 2) # => #<struct Point x=1, y=2>
Point.new(x: 1) # => #<struct Point x=1, y=nil>
Point.new(y: 2) # => #<struct Point x=nil, y=2>
Point.new(z: 3) # Arg......n keywords: z)
//}
//emlist[警告が出る例][ruby]{
Point = Struct.new(:x, :y)
Point.new(x: 1, y: 2) # => #<struct Point x={:x=>1, :y=>2}, y=nil>
# warning: Passing only keyword arguments to Struct#initialize will behave differently from Ruby 3.2. Please use a Hash lite... -
Struct
. new(*args , keyword _ init: nil) {|subclass| block } -> Class (9140.0) -
Struct クラスに新しいサブクラスを作って、それを返します。
...
Struct クラスに新しいサブクラスを作って、それを返します。
サブクラスでは構造体のメンバに対するアクセスメソッドが定義されています。
//emlist[例][ruby]{
dog = Struct.new("Dog", :name, :age)
fred = dog.new("fred", 5)
fred.age = 6
printf "......ださい。
//emlist[例][ruby]{
Point = Struct.new(:x, :y, keyword_init: true) # => Point(keyword_init: true)
Point.new(x: 1, y: 2) # => #<struct Point x=1, y=2>
Point.new(x: 1) # => #<struct Point x=1, y=nil>
Point.new(y: 2) # => #<struct Point x=nil, y=2>
Point.new(z: 3) # Arg......n keywords: z)
//}
//emlist[警告が出る例][ruby]{
Point = Struct.new(:x, :y)
Point.new(x: 1, y: 2) # => #<struct Point x={:x=>1, :y=>2}, y=nil>
# warning: Passing only keyword arguments to Struct#initialize will behave differently from Ruby 3.2. Please use a Hash lite... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (96.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への変更点(まとめ)/サポートプラットフォームの追加>))
...(({ary[n,0] = [other,...]})) と同じ(ただし self を返す)
=== Class
: ((<Class#allocate|Class/allocate>)) [new]
allocate と initialize の二つのメソッドでオブジェクトを
生成するようになりました。((<ruby-dev:14847>))
rb_define_alloc_func() も......dError
: ((<NoMethodError#args|NoMethodError/args>)) [new]
追加
=== Object
: ((<Object#initialize_copy|Object/initialize_copy>)) [change]
追加
このメソッドは initialize と同様、自動的に private method になります。
: ((<Object#instance_variable_get|Object/......なりました。
: ((<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... -
ruby 1
. 6 feature (66.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
...Errno::EAGAIN
Errno::EWOULDBLOCK
=> ruby 1.6.8 (2002-12-24) [i586-linux]
Errno::EAGAIN
-:2: uninitialized constant EWOULDBLOCK at Errno (NameError)
=> ruby 1.6.8 (2003-02-13) [i586-linux]
Errno::EAGAIN
Errno::EAGAIN
=......autoload が効いていませんでした。((<ruby-dev:16379>))
autoload :Fcntl, "fcntl"
require "fcntl"
=> -:2:in `require': uninitialized constant Fcntl (NameError)
from -:2
ruby 1.6.7 (2002-03-01) [i586-linux]
=> ruby 1.6.7 (2002-03-15) [i586-linux]
: 200......puts md
puts MD5.hexdigest("123")
: ((<Struct>))
フリーズされた構造体オブジェクトが変更できていました。また、$SAFE =
4 のときの変更を禁止するようにしました。((<ruby-talk:19167>))
cat = Struct.new("Cat", :name, :age, :life)
a = cat.... -
Marshal フォーマット (36.0)
-
Marshal フォーマット フォーマットバージョン 4.8 を元に記述しています。
...ariableも参照してください。
//emlist[例 2: インスタンス変数あり][ruby]{
class Foo < Array # (or String, Regexp, Hash)
def initialize(obj)
@foo = false
super(obj)
end
end
p Marshal.dump(Foo.new([true])).unpack("x2 a a a c a3 aca caca4 a")
# => ["I", "C", ":", 8, "Foo......(Object.new).unpack("x2 a a c a6 c")
# => ["o", ":", 11, "Object", 0]
//}
//emlist[例 2: インスタンス変数あり][ruby]{
class Foo
def initialize
@foo = :bar
@one = 1
end
end
p Marshal.dump(Foo.new).unpack("x2 a a c a3 c aca4 aca3 aca4 ac")
# => ["o", ":", 8, "Foo", 7,
# ":"......roc)
//}
=== Struct
構造体クラスのインスタンスのダンプは 'S' で始まるデータ構造になります。
//emlist{
| 'S' | クラス名(Symbol) の dump | メンバの数(Fixnum形式) |
| メンバ名(Symbol) の dump | 値 | ... |
//}
//emlist[例][ruby]{
Struct.new("XXX",... -
NEWS for Ruby 3
. 1 . 0 (36.0) -
NEWS for Ruby 3.1.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...forkイベントをフックすることができます。 17795
* Struct
* 新規メソッド
* StructClass#keyword_init? が追加されました。 18008
* 変更されたメソッド
* Struct#initialize はキーワード引数のみを渡すと警告されるようにな......* logger 1.5.0
* net-http 0.2.0
* net-protocol 0.1.2
* nkf 0.1.1
* open-uri 0.2.0
* openssl 3.0.0
* optparse 0.2.0
* ostruct 0.5.2
* pathname 0.2.0
* pp 0.3.0
* prettyprint 0.1.1
* psych 4.0.3
* racc 1.6.0
* rdoc 6.4.0
* readline 0.0.3
* r......す。 rb_thread_wait_fd と rb_thread_fd_writable は非推奨になりました。 18003
== 標準添付ライブラリの互換性
* ERB#initializeが-wオプションなしでもsafe_level以降の引数に警告されるようになりました。 14256
* lib/debug.rb が debug.gem に置... -
NEWS for Ruby 2
. 0 . 0 (30.0) -
NEWS for Ruby 2.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...M::InstructionSequence.of to get the instruction sequence
from a method or a block.
* 追加: RubyVM::InstructionSequence#path,
RubyVM::InstructionSequence#absolute_path,
RubyVM::InstructionSequence#label,
RubyVM::InstructionSequence#base_label,
RubyVM::InstructionS......equence#first_lineno to retrieve information from where
the instruction sequence was defined.
* スタックの使用量を指定するための環境変数を追加(起動時にチェックします):
* RUBY_THREAD_VM_STACK_SIZE: vm stack size used at thread creation.
defaul......ond_to? against a protected method now returns false
unless the second argument is true.
* Object#respond_to_missing?, Object#initialize_clone, Object#initialize_dup
* private になりました
* Thread#join, Thread#value
* 上を参照
* Mutex#lock, Mutex#unlock, Mutex#try_loc... -
ruby 1
. 8 . 2 feature (30.0) -
ruby 1.8.2 feature ruby 1.8.2 での ruby 1.8.1 からの変更点です。
...CGI::Session#initialize [lib] [compat]
'no_hidden' オプションを指定できるようになりました。((<ruby-talk:123850>))
=== 2004-12-16
: Hash#eql? [ruby] [obsolete]
: Hash#hash [ruby] [obsolete]
削除
((<ruby-dev:25206>))?
=== 2004-12-14
: CGI::Session.initialize [lib] [chan......v:24896>))
=== 2004-11-16
: Test::Unit::AutoRunner.options [lib] [compat]
add new option --exclude (-x). ((<ruby-dev:24865>))
: CGI::Session.initialize [lib] [compat]
'sufix' オプションを設定できるようになりました。
=== 2004-11-10
: Array#pack [ruby] [change]
P 指定子......TPServlet::FileHandler#get_servlet [lib] [new]
=== 2004-09-03
: Struct.new [ruby] [bug]
同じ名前で二度定義したときのバグを修正しました。((<ruby-dev:24210>))
=== 2004-08-24
: CGI::Session::FileStore#initialize [lib] [bug]
セッションを保存するファイル名に... -
NEWS for Ruby 2
. 5 . 0 (24.0) -
NEWS for Ruby 2.5.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...akata/Onigmo/issues/82
* Support new 5 emoji-related Unicode character properties
* RubyVM::InstructionSequence
* RubyVM::InstructionSequence#each_child を追加
* RubyVM::InstructionSequence#trace_points を追加
* String
* String#-@ はフリーズされていない文字......字を列挙します。
13780
* String#undump を追加。String#dumpで出力した文字列を元に戻します。12275
* Struct
* Struct.new は :keyword_init というキーワード引数を受け取り、メンバーをキーワード引数で初期化できるようにな......b
* Logger
* Logger.new("| command") は意図せず、コマンドを実行していましたが、禁止されました。
Logger#initialize の引数は仕様としてファイル名としてのみ扱うようになりました。
14212
* Net::HTTP
* Net::HTTP#start の... -
NEWS for Ruby 3
. 0 . 0 (18.0) -
NEWS for Ruby 3.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...el
* Kernel#clone when called with the `freeze: false` keyword will call `#initialize_clone` with the `freeze: false` keyword. 14266
* Kernel#clone when called with the `freeze: true` keyword will call `#initialize_clone` with the `freeze: true` keyword, and will return a frozen copy even if......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......* `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 `==`, `nil?`, and `!`... -
Ruby用語集 (18.0)
-
Ruby用語集 A B C D E F G I J M N O R S Y
...長引数」という用語の
ほうが普及している。
英語の variadic は形容詞である。
: 空
: empty
Array や Hash、Struct のような要素を持つクラスでは、要素が無いことを
「空(から)」と呼ぶ。
また、String クラスでは、長......値を真偽値として用いる式。if、unless、while、until のあとなどに書かれる。
: 初期化
: initialize
オブジェクトが生成されるとき、initialize という名の private メソッドが
呼ばれる。このメソッドで行う処理をオブジェクトの......esting
制御構造、ブロックや、クラス・モジュール・メソッドなどの定義の入れ子。
===[a:ha] は
: 破壊的
: destructive
レシーバーに影響を与えるメソッドは「破壊的」であると呼ばれる。
例えば文字列オブジェクトにつ...