るりまサーチ

最速Rubyリファレンスマニュアル検索!
538件ヒット [1-100件を表示] (0.241秒)

別のキーワード

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

クラス

モジュール

キーワード

検索結果

<< 1 2 3 ... > >>

Object#initialize(*args, &block) -> object (26151.0)

ユーザ定義クラスのオブジェクト初期化メソッド。

...トの動作ではなにもしません。

initialize
には
Class#new に与えられた引数がそのまま渡されます。

サブクラスではこのメソッドを必要に応じて再定義されること
が期待されています。

initialize
という名前のメソッドは自動...
...][ruby]{
class Foo
def initialize name
puts "initialize Foo"
@name = name
end
end

class Bar < Foo
def initialize name, pass
puts "initialize Bar"
super name
@pass = pass
end
end

it = Bar.new('myname','0500')
p it
#=> initialize Bar
# initialize Foo
# #<Bar:0x2b68f08...

Object#initialize_copy(obj) -> object (14145.0)

(拡張ライブラリによる) ユーザ定義クラスのオブジェクトコピーの初期化メソッド。

...し、self のインスタンス変数や特異メソッドは変化しません。
Object#clone, Object#dupの内部で使われています。

initialize
_copy は、Ruby インタプリタが知り得ない情報をコピーするた
めに使用(定義)されます。例えば C 言語でクラ...
...clone
を再定義する必要がなくなります。

デフォルトの Object#initialize_copy は、 freeze チェックおよび型のチェックを行い self
を返すだけのメソッドです。

initialize
_copy という名前のメソッドは
自動的に private に設定されます...
...利用しているかを示します。

obj.dup は、新たに生成したオブジェクトに対して
initialize
_copy を呼び

//emlist[][ruby]{
obj2 = obj.class.allocate
obj2.initialize_copy(obj)
//}

obj2 に対してさらに obj の汚染状態、インスタンス変数、ファイナラ...
...利用しているかを示します。

obj.dup は、新たに生成したオブジェクトに対して
initialize
_copy を呼び

//emlist[][ruby]{
obj2 = obj.class.allocate
obj2.initialize_copy(obj)
//}

obj2 に対してさらに obj のインスタンス変数、ファイナライザを
...

Data.[](**kwargs) -> Data (8056.0)

(このメソッドは Data のサブクラスにのみ定義されています) 値オブジェクトを生成して返します。

...す。

new に渡す引数の数がメンバの数より少ない場合は new ではエラーにならず、そのまま initialize に渡されます。
ユーザが initialize のオーバーライドを通して、少ない引数のときの適切な振舞いを実装可能とするためです...
...
残りのケースではエラーの発生箇所は new ではなく initialize であることに注意してください。

//emlist[例][ruby]{
Point = Data.define(:x, :y)

Point.new(1) # => in `initialize': missing keyword: :y (ArgumentError)
Point.new(1, 2, 3) # =...
...ed 0..2) (ArgumentError)
Point.new(x: 1) # => in `initialize': missing keyword: :y (ArgumentError)
Point.new(x: 1, y: 2, z: 3) # => in `initialize': unknown keyword: :z (ArgumentError)
//}

下の例のように、initialize メソッドをオーバーライドすることで new の...

Data.[](*args) -> Data (8056.0)

(このメソッドは Data のサブクラスにのみ定義されています) 値オブジェクトを生成して返します。

...す。

new に渡す引数の数がメンバの数より少ない場合は new ではエラーにならず、そのまま initialize に渡されます。
ユーザが initialize のオーバーライドを通して、少ない引数のときの適切な振舞いを実装可能とするためです...
...
残りのケースではエラーの発生箇所は new ではなく initialize であることに注意してください。

//emlist[例][ruby]{
Point = Data.define(:x, :y)

Point.new(1) # => in `initialize': missing keyword: :y (ArgumentError)
Point.new(1, 2, 3) # =...
...ed 0..2) (ArgumentError)
Point.new(x: 1) # => in `initialize': missing keyword: :y (ArgumentError)
Point.new(x: 1, y: 2, z: 3) # => in `initialize': unknown keyword: :z (ArgumentError)
//}

下の例のように、initialize メソッドをオーバーライドすることで new の...

Data.new(**kwargs) -> Data (8056.0)

(このメソッドは Data のサブクラスにのみ定義されています) 値オブジェクトを生成して返します。

...す。

new に渡す引数の数がメンバの数より少ない場合は new ではエラーにならず、そのまま initialize に渡されます。
ユーザが initialize のオーバーライドを通して、少ない引数のときの適切な振舞いを実装可能とするためです...
...
残りのケースではエラーの発生箇所は new ではなく initialize であることに注意してください。

//emlist[例][ruby]{
Point = Data.define(:x, :y)

Point.new(1) # => in `initialize': missing keyword: :y (ArgumentError)
Point.new(1, 2, 3) # =...
...ed 0..2) (ArgumentError)
Point.new(x: 1) # => in `initialize': missing keyword: :y (ArgumentError)
Point.new(x: 1, y: 2, z: 3) # => in `initialize': unknown keyword: :z (ArgumentError)
//}

下の例のように、initialize メソッドをオーバーライドすることで new の...

絞り込み条件を変える

Data.new(*args) -> Data (8056.0)

(このメソッドは Data のサブクラスにのみ定義されています) 値オブジェクトを生成して返します。

...す。

new に渡す引数の数がメンバの数より少ない場合は new ではエラーにならず、そのまま initialize に渡されます。
ユーザが initialize のオーバーライドを通して、少ない引数のときの適切な振舞いを実装可能とするためです...
...
残りのケースではエラーの発生箇所は new ではなく initialize であることに注意してください。

//emlist[例][ruby]{
Point = Data.define(:x, :y)

Point.new(1) # => in `initialize': missing keyword: :y (ArgumentError)
Point.new(1, 2, 3) # =...
...ed 0..2) (ArgumentError)
Point.new(x: 1) # => in `initialize': missing keyword: :y (ArgumentError)
Point.new(x: 1, y: 2, z: 3) # => in `initialize': unknown keyword: :z (ArgumentError)
//}

下の例のように、initialize メソッドをオーバーライドすることで new の...

Class#new(*args, &block) -> object (8036.0)

自身のインスタンスを生成して返します。 このメソッドの引数はブロック引数も含め Object#initialize に渡されます。

...ク引数も含め Object#initialize に渡されます。

new は Class#allocate でインスタンスを生成し、
Object#initialize で初期化を行います。

@param args Object#initialize に渡される引数を指定します。

@param block Object#initialize に渡されるブロッ...

Class.new(superclass = Object) -> Class (8026.0)

新しく名前の付いていない superclass のサブクラスを生成します。

...Class#initialize が行います。

@param superclass 生成するクラスのスーパークラスを指定します。

//emlist[例][ruby]{
k = Class.new{|c|
def initialize
p "in initialize"
end

def hoge
p "hoge hoge hoge"
end
}
o = k.new #=> "in initialize"
o.hoge...

Class.new(superclass = Object) {|klass| ... } -> Class (8026.0)

新しく名前の付いていない superclass のサブクラスを生成します。

...Class#initialize が行います。

@param superclass 生成するクラスのスーパークラスを指定します。

//emlist[例][ruby]{
k = Class.new{|c|
def initialize
p "in initialize"
end

def hoge
p "hoge hoge hoge"
end
}
o = k.new #=> "in initialize"
o.hoge...

ObjectSpace.#define_finalizer(obj) {|id| ...} -> Array (8020.0)

obj が解放されるときに実行されるファイナライザ proc を 登録します。同じオブジェクトについて複数回呼ばれたときは置き換えで はなく追加登録されます。固定値 0 と proc を配列にして返します。

...れます。

=== 使い方の注意

以下は、define_finalizer の使い方の悪い例です。

//emlist[悪い例][ruby]{
class Foo
def initialize
ObjectSpace.define_finalizer(self) {
puts "foo"
}
end
end
Foo.new
GC.start
//}

これは、渡された proc の self が obj...
...とで上記の問題を回避しています。

//emlist[例][ruby]{
class Bar
def Bar.callback
proc {
puts "bar"
}
end
def initialize
ObjectSpace.define_finalizer(self, Bar.callback)
end
end
Bar.new
GC.start
//}

proc の呼び出しで発生した大域脱出(exitや例...
...-d オプションで
事前に例外の発生の有無を確認しておいた方が良いでしょう。

//emlist[例][ruby]{
class Baz
def initialize
ObjectSpace.define_finalizer self, eval(%q{
proc {
raise "baz" rescue puts $!
raise "baz2"
puts "baz3"...

絞り込み条件を変える

ObjectSpace.#define_finalizer(obj, proc) -> Array (8020.0)

obj が解放されるときに実行されるファイナライザ proc を 登録します。同じオブジェクトについて複数回呼ばれたときは置き換えで はなく追加登録されます。固定値 0 と proc を配列にして返します。

...れます。

=== 使い方の注意

以下は、define_finalizer の使い方の悪い例です。

//emlist[悪い例][ruby]{
class Foo
def initialize
ObjectSpace.define_finalizer(self) {
puts "foo"
}
end
end
Foo.new
GC.start
//}

これは、渡された proc の self が obj...
...とで上記の問題を回避しています。

//emlist[例][ruby]{
class Bar
def Bar.callback
proc {
puts "bar"
}
end
def initialize
ObjectSpace.define_finalizer(self, Bar.callback)
end
end
Bar.new
GC.start
//}

proc の呼び出しで発生した大域脱出(exitや例...
...-d オプションで
事前に例外の発生の有無を確認しておいた方が良いでしょう。

//emlist[例][ruby]{
class Baz
def initialize
ObjectSpace.define_finalizer self, eval(%q{
proc {
raise "baz" rescue puts $!
raise "baz2"
puts "baz3"...

Data.define(*args) -> Class (8014.0)

Data クラスに新しいサブクラスを作って、それを返します。

...を生成する際にオプション引数を使用したいときは、
initialize
メソッドをオーバーライドすることで実現できます。

//emlist[例][ruby]{
Point = Data.define(:x, :y) do
def initialize(x:, y: 0)
super
end
end

p Point.new(x: 1) # => #<data Point...

Data.define(*args) {|subclass| block } -> Class (8014.0)

Data クラスに新しいサブクラスを作って、それを返します。

...を生成する際にオプション引数を使用したいときは、
initialize
メソッドをオーバーライドすることで実現できます。

//emlist[例][ruby]{
Point = Data.define(:x, :y) do
def initialize(x:, y: 0)
super
end
end

p Point.new(x: 1) # => #<data Point...

Thread::Backtrace::Location (8014.0)

Ruby のフレームを表すクラスです。

...][ruby]{
# foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end

Foo.new(0..2).locations.map do |call|
puts call.to_s
end
//}

例2の実行結果:

init.rb:4:in `initialize'
init.rb:8:in `new'
init.rb:8:in `<main>'

=== 参考...
<< 1 2 3 ... > >>