るりまサーチ

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

別のキーワード

  1. kernel trace_var
  2. tracer trace_func
  3. _builtin trace_var
  4. matrix trace
  5. etc sc_trace_log

ライブラリ

クラス

モジュール

検索結果

Kernel.#trace_var(varname) {|new_val| .... } -> nil (18139.0)

グローバル変数 varname への代入のフックを登録します。

...合はRubyコードとして評価されます。

trace_var
がフックするのは明示的な代入だけです。
フックは複数登録できます。

フックを解除するには、hook に nil を
指定するか、Kernel.#untrace_var を用います。

hook が nil ならば、設定...
...クトで返されます)
それ以外は、nil を返します。

@
param varname グローバル変数名を文字列か Symbol で指定します。
@
param hook フックになる文字列または Proc オブジェクトです。
@
return フックを登録した場合は nil を返します。...
...解除した場合は解除した
フックを並べた配列を返します。

//emlist[例][ruby]{
trace_var
(:$v){|val| puts "hook: $v=#{val.inspect}" }
$v = 1 #=> hook: $v=1
$v = "foo" #=> hook: $v="foo"
$v.upcase!
p $v #=> "FOO"
//}

@
see Kernel.#untrace_var...

Kernel.#trace_var(varname, hook) -> [String|Proc] (18139.0)

グローバル変数 varname への代入のフックを登録します。

...合はRubyコードとして評価されます。

trace_var
がフックするのは明示的な代入だけです。
フックは複数登録できます。

フックを解除するには、hook に nil を
指定するか、Kernel.#untrace_var を用います。

hook が nil ならば、設定...
...クトで返されます)
それ以外は、nil を返します。

@
param varname グローバル変数名を文字列か Symbol で指定します。
@
param hook フックになる文字列または Proc オブジェクトです。
@
return フックを登録した場合は nil を返します。...
...解除した場合は解除した
フックを並べた配列を返します。

//emlist[例][ruby]{
trace_var
(:$v){|val| puts "hook: $v=#{val.inspect}" }
$v = 1 #=> hook: $v=1
$v = "foo" #=> hook: $v="foo"
$v.upcase!
p $v #=> "FOO"
//}

@
see Kernel.#untrace_var...

Kernel.#trace_var(varname, hook) -> nil (18139.0)

グローバル変数 varname への代入のフックを登録します。

...合はRubyコードとして評価されます。

trace_var
がフックするのは明示的な代入だけです。
フックは複数登録できます。

フックを解除するには、hook に nil を
指定するか、Kernel.#untrace_var を用います。

hook が nil ならば、設定...
...クトで返されます)
それ以外は、nil を返します。

@
param varname グローバル変数名を文字列か Symbol で指定します。
@
param hook フックになる文字列または Proc オブジェクトです。
@
return フックを登録した場合は nil を返します。...
...解除した場合は解除した
フックを並べた配列を返します。

//emlist[例][ruby]{
trace_var
(:$v){|val| puts "hook: $v=#{val.inspect}" }
$v = 1 #=> hook: $v=1
$v = "foo" #=> hook: $v="foo"
$v.upcase!
p $v #=> "FOO"
//}

@
see Kernel.#untrace_var...

Kernel.#untrace_var(varname, hook = nil) -> [String|Proc] (6148.0)

グローバル変数 varname に関連付けられたフックを解除します。

...クを全て解除します。

@
param varname グローバル変数名を文字列か Symbol で指定します。
@
param hook 文字列または Proc オブジェクトです。
@
return 解除されたフックの配列を返します。

//emlist[例][ruby]{
trace_var
(:$v){|val| print "hookA.#{va...
..."hookB.#{val.inspect}," }
trace_var
(:$v,&block)
$v = 'str' #=> hookB."str",hookA."str",

untrace_var(:$v,block)
$v = 'str' #=> hookA."str",

trace_var
(:$v){|val| print "hookC.#{val.inspect}," }
p untrace_var(:$v) #=> [#<Proc:0x02b68f58@..:9>, #<Proc:0x02b6978c@..:3>]
$v = 'str'...
...# なにも出力されない
//}

@
see Kernel.#trace_var...

Object#freeze -> self (24.0)

オブジェクトを凍結(内容の変更を禁止)します。

...操作' と呼ばれるもの一般です。変数への参照自体を凍結したい
場合は、グローバル変数なら Kernel.#trace_var が使えます。

@
return self を返します。

//emlist[][ruby]{
a1 = "foo".freeze
a1 = "bar"
p a1 #=> "bar"

a2 = "foo".freeze
a2.replace("bar") # c...
...ます。

//emlist[][ruby]{
a = [1].freeze
p a.frozen? #=> true

a[0] = "foo"
p a # can't modify frozen Array (RuntimeError)

b = a.dup
p b #=> [1]
p b.frozen? #=> false

b[0] = "foo"
p b #=> ["foo"]
//}

@
see Object#frozen?,Object#dup,Kernel.#trace_var...
...ます。

//emlist[][ruby]{
a = [1].freeze
p a.frozen? #=> true

a[0] = "foo"
p a # can't modify frozen Array (FrozenError)

b = a.dup
p b #=> [1]
p b.frozen? #=> false

b[0] = "foo"
p b #=> ["foo"]
//}

@
see Object#frozen?,Object#dup,Kernel.#trace_var...

絞り込み条件を変える

1.6.8から1.8.0への変更点(まとめ) (18.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への変更点(まとめ)/サポートプラットフォームの追加>))

...することにより定数参照の速度を改善したそうです。
(ChangeLogの
Tue Jun 5 16:15:58 2001 Yukihiro Matsumoto <matz@ruby-lang.org>
に該当するようです)

: break and next [compat]

break, next は、引数を指定することでイテレータや y...
...r)
from -:1
ruby 1.6.8 (2002-12-24) [i586-linux]


: ((<組み込み関数/trap>)) [bug]
: ((<組み込み関数/trace_var>)) [bug]

第二引数に汚染された文字列を渡すと例外 ((<SecurityError>)) が
起こるようになりました。1.6 では...
...ました。
((<ruby-dev:18278>))

local ||= 1
@
instance ||= 1
$global ||= 1
@
@class ||= 1

=> -:3: warning: global variable `$global' not initialized
-:4: uninitialized class variable @@class in Object (NameError)
ruby 1.6.7 (2002-03-0...

セキュリティモデル (12.0)

セキュリティモデル RubyにはCGI等のプログラミングを安全に行うことを助ける為に、セキュリティ 機構が備わっています。

...と、記憶していたセーフレベルで実行される。
* 汚染された文字列を第二引数に指定して Kernel.#trap/Kernel.#trace_var
実行するとその時点で例外 SecurityError が発生する。
* 実装の都合上 Fixnum, Bignum, Float,
Symbol, true,...
...の扱い

* 拡張ライブラリではオブジェクトの汚染状態を適切に伝播させる必要があります。
* グローバルな状態を変更する場合や外部とのやりとりの前にセキュリティレベルを
チェックする必要があります。

@
see 37407...
...と、記憶していたセーフレベルで実行される。
* 汚染された文字列を第二引数に指定して Kernel.#trap/Kernel.#trace_var
実行するとその時点で例外 SecurityError が発生する。
* 実装の都合上 Integer, Float, Symbol, true,
false,...