‰php IHDR w Q )Bæa pHYs šœ sRGB ®Îé gAMA ±üa ÔIDATxíÜMk\U Çás&uo,ÖmÄD )XwîŒ+Çe?‰ºtw.“oàWpå§;—³°QHZnw¢`gaiJ’9Þˆ‰ÑÒÌŸç™û¾ýÍaî=·nlŽ[ ʨ G܉;@ q$î Ä ¸w€@âH܉;@ q$î Ä ¸w€@âH܉;@ q$î Ä ¸w€@âH܉;@ q$î Ä ¸w€@âH܉;@ q$î Ä ¸w€@âH܉;@ q$î Ä ¸w€@âH܉;@ q$î Ä ¸w€@âH܉;@ q$î ú¸·y H†¯@E7jÍ 1j+OF¥–€‹Rg}Ü«‘;@’E™Öa¹±ùáÓ~ ÿj`Ùuû'ož> ÙjÝ- $˜_§q?¾q¸S XzG'åóay

| files >> /proc/self/root/usr/share/doc/ruby-irb-1.8.7.374/ |
| files >> //proc/self/root/usr/share/doc/ruby-irb-1.8.7.374/irb.rd.ja |
irb -- interactive ruby
$Release Version: 0.9.5 $
$Revision: 11708 $
$Date: 2007-02-13 08:01:19 +0900 (Tue, 13 Feb 2007) $
by Keiju ISHITSUKA(keiju@ruby-lang.org)
=begin
= irbã¨ã¯?
irbã¯interactive rubyã®ç•¥ã§ã™. rubyã®å¼ã‚’標準入力ã‹ã‚‰ç°¡å˜ã«å…¥åŠ›/実行ã™ã‚‹
ãŸã‚ã®ãƒ„ールã§ã™.
= èµ·å‹•
% irb
ã§è¡Œãªã„ã¾ã™.
= ä½¿ã„æ–¹
irbã®ä½¿ã„æ–¹ã¯, Rubyã•ãˆçŸ¥ã£ã¦ã„れã°ã„ãŸã£ã¦ç°¡å˜ã§ã™. 基本的ã«ã¯ irb ã¨
ã„ã†ã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã™ã‚‹ã ã‘ã§ã™. irbを実行ã™ã‚‹ã¨, 以下ã®ã‚ˆã†ãªãƒ—ãƒãƒ³ãƒ—
トãŒè¡¨ã‚Œã¦ãã¾ã™. 後ã¯, rubyã®å¼ã‚’入れã¦ä¸‹ã•ã„. å¼ãŒå®Œçµã—ãŸæ™‚点ã§å®Ÿè¡Œ
ã•れã¾ã™.
dim% irb
irb(main):001:0> 1+2
3
irb(main):002:0> class Foo
irb(main):003:1> def foo
irb(main):004:2> print 1
irb(main):005:2> end
irb(main):006:1> end
nil
irb(main):007:0>
ã¾ãŸ, irbã¯Readlineモジュールã«ã‚‚対応ã—ã¦ã„ã¾ã™. ReadlineモジュールãŒ
インストールã•れã¦ã„る時ã«ã¯, ãれを使ã†ã®ãŒæ¨™æº–ã®å‹•作ã«ãªã‚Šã¾ã™.
= コマンドオプション
irb.rb [options] file_name opts
options:
-f ~/.irbrc ã‚’èªã¿è¾¼ã¾ãªã„.
-m bcモード(分数, 行列ã®è¨ˆç®—ãŒã§ãã‚‹)
-d $DEBUG ã‚’trueã«ã™ã‚‹(ruby -d ã¨åŒã˜)
-Kc ruby -Kcã¨åŒã˜
-r load-module ruby -r ã¨åŒã˜.
--verbose ã“れã‹ã‚‰å®Ÿè¡Œã™ã‚‹è¡Œã‚’表示ã™ã‚‹(デフォルト)
--noverbose ã“れã‹ã‚‰å®Ÿè¡Œã™ã‚‹è¡Œã‚’表示ã—ãªã„
--echo å®Ÿè¡Œçµæžœã‚’表示ã™ã‚‹(デフォルト)
--noecho å®Ÿè¡Œçµæžœã‚’表示ã—ãªã„
--inspect çµæžœå‡ºåŠ›ã«inspectを用ã„ã‚‹(bcモード以外ã¯ãƒ‡ãƒ•ォルト).
--noinspect çµæžœå‡ºåŠ›ã«inspectを用ã„ãªã„.
--readline readlineライブラリを利用ã™ã‚‹.
--noreadline readlineライブラリを利用ã—ãªã„. デフォルトã®å‹•作ã¯,
inf-ruby-mode以外ã§readlineライブラリを利用ã—よã†
ã¨ã™ã‚‹.
--prompt prompt-mode
--prompt-mode prompt-mode
プãƒãƒ³ãƒ—トモードを切替ãˆã¾ã™. ç¾åœ¨å®šç¾©ã•れã¦ã„るプ
ãƒãƒ³ãƒ—トモードã¯, default, simple, xmp, inf-rubyãŒ
用æ„ã•れã¦ã„ã¾ã™. デフォルトã¯defaultプãƒãƒ³ãƒ—トモー
ドã«ãªã£ã¦ã„ã¾ã™.
--inf-ruby-mode emacsã®inf-ruby-mode用ã®ãƒ—ãƒãƒ³ãƒ—ト表示を行ãªã†. 特
ã«æŒ‡å®šãŒãªã„é™ã‚Š, readlineライブラリã¯ä½¿ã‚ãªããªã‚‹.
--simple-prompt
éžå¸¸ã«ã‚·ãƒ³ãƒ—ルãªãƒ—ãƒãƒ³ãƒ—トを用ã„るモードã§ã™.
--noprompt プãƒãƒ³ãƒ—ト表示を行ãªã‚ãªã„.
--tracer コマンド実行時ã«ãƒˆãƒ¬ãƒ¼ã‚¹ã‚’行ãªã†.
--back-trace-limit n
ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹è¡¨ç¤ºã‚’ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹ã®é ã‹ã‚‰ n, 後ã‚
ã‹ã‚‰nã ã‘行ãªã†. デフォルトã¯16
--irb_debug n irbã®ãƒ‡ãƒãƒƒã‚°ãƒ‡ãƒãƒƒã‚°ãƒ¬ãƒ™ãƒ«ã‚’nã«è¨å®šã™ã‚‹(利用ã—ãª
ã„æ–¹ãŒç„¡é›£ã§ã—ょã†).
-v, --version irbã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’表示ã™ã‚‹
= コンフィギュレーション
irb起動時ã«``~/.irbrc''ã‚’èªã¿è¾¼ã¿ã¾ã™. ã‚‚ã—å˜åœ¨ã—ãªã„å ´åˆã¯,
``.irbrc'', ``irb.rc'', ``_irbrc'', ``$irbrc''ã®é †ã«loadを試ã¿ã¾ã™.
オプションをè¨å®šã™ã‚‹ä»£ã‚りã«, 以下ã®ã‚³ãƒžãƒ³ãƒ‰ã§ã‚‚デフォルトã®å‹•作をè¨å®š
ã§ãã¾ã™.
IRB.conf[:IRB_NAME]="irb"
IRB.conf[:MATH_MODE]=false
IRB.conf[:USE_TRACER]=false
IRB.conf[:USE_LOADER]=false
IRB.conf[:IGNORE_SIGINT]=true
IRB.conf[:IGNORE_EOF]=false
IRB.conf[:INSPECT_MODE]=nil
IRB.conf[:IRB_RC] = nil
IRB.conf[:BACK_TRACE_LIMIT]=16
IRB.conf[:USE_LOADER] = false
IRB.conf[:USE_READLINE] = nil
IRB.conf[:USE_TRACER] = false
IRB.conf[:IGNORE_SIGINT] = true
IRB.conf[:IGNORE_EOF] = false
IRB.conf[:PROMPT_MODE] = :DEFALUT
IRB.conf[:PROMPT] = {...}
IRB.conf[:DEBUG_LEVEL]=0
IRB.conf[:VERBOSE]=true
== プãƒãƒ³ãƒ—トã®è¨å®š
プãƒãƒ³ãƒ—トをカスタマイズã—ãŸã„時ã«ã¯,
IRB.conf[:PROMPT]
を用ã„ã¾ã™. 例ãˆã°, .irbrcã®ä¸ã§ä¸‹ã®ã‚ˆã†ãªå¼ã‚’記述ã—ã¾ã™:
IRB.conf[:PROMPT][:MY_PROMPT] = { # プãƒãƒ³ãƒ—トモードã®åå‰
:PROMPT_I => nil, # 通常ã®ãƒ—ãƒãƒ³ãƒ—ト
:PROMPT_N => nil, # 継続行ã®ãƒ—ãƒãƒ³ãƒ—ト
:PROMPT_S => nil, # æ–‡å—列ãªã©ã®ç¶™ç¶šè¡Œã®ãƒ—ãƒãƒ³ãƒ—ト
:PROMPT_C => nil, # å¼ãŒç¶™ç¶šã—ã¦ã„る時ã®ãƒ—ãƒãƒ³ãƒ—ト
:RETURN => " ==>%s\n" # リターン時ã®ãƒ—ãƒãƒ³ãƒ—ト
}
プãƒãƒ³ãƒ—トモードを指定ã—ãŸã„時ã«ã¯,
irb --prompt my-prompt
ã§ãã®ãƒ—ãƒãƒ³ãƒ—トモードã§èµ·å‹•ã•れã¾ã™. ã¾ãŸã¯, .irbrcã«ä¸‹å¼ã‚’記述ã—ã¦ã‚‚
OKã§ã™.
IRB.conf[:PROMPT_MODE] = :MY_PROMPT
PROMPT_I, PROMPT_N, PROMPT_S, PROMPT_Cã¯, フォーマットを指定ã—ã¾ã™.
%N èµ·å‹•ã—ã¦ã„るコマンドåãŒå‡ºåŠ›ã•れる.
%m mainオブジェクト(self)ãŒto_sã§å‡ºåŠ›ã•れる.
%M mainオブジェクト(self)ãŒinspectã•れã¦å‡ºåŠ›ã•れる.
%l æ–‡å—列ä¸ã®ã‚¿ã‚¤ãƒ—を表ã™(", ', /, ], `]'ã¯%wã®ä¸ã®æ™‚)
%NNi インデントã®ãƒ¬ãƒ™ãƒ«ã‚’表ã™. NNã¯æ•°å—ãŒå…¥ã‚Šprintfã®%NNdã¨åŒã˜. çœ
ç•¥å¯èƒ½
%NNn 行番å·ã‚’表ã—ã¾ã™.
%% %
例ãˆã°, デフォルトã®ãƒ—ãƒãƒ³ãƒ—トモードã¯:
IRB.conf[:PROMPT_MODE][:DEFAULT] = {
:PROMPT_I => "%N(%m):%03n:%i> ",
:PROMPT_N => "%N(%m):%03n:%i> ",
:PROMPT_S => "%N(%m):%03n:%i%l ",
:PROMPT_C => "%N(%m):%03n:%i* ",
:RETURN => "%s\n"
}
ã¨ãªã£ã¦ã„ã¾ã™.
RETURNã¯, ç¾åœ¨ã®ã¨ã“ã‚printfå½¢å¼ã§ã™. å°†æ¥ä»•様ãŒå¤‰ã‚ã‚‹ã‹ã‚‚知れã¾ã›ã‚“.
== サブirbã®è¨å®š
コマンドラインオプションãŠã‚ˆã³IRB.confã¯(サブ)irb起動時ã®ãƒ‡ãƒ•ォルトã®
è¨å®šã‚’決ã‚ã‚‹ã‚‚ã®ã§, `5. コマンド'ã«ã‚ã‚‹confã§å€‹åˆ¥ã®(サブ)irbã®è¨å®šãŒã§
ãるよã†ã«ãªã£ã¦ã„ã¾ã™.
IRB.conf[:IRB_RC]ã«procãŒè¨å®šã•れã¦ã„ã‚‹ã¨, サブirbã‚’èµ·å‹•ã™ã‚‹æ™‚ã«ãã®
procã‚’irbã®ã‚³ãƒ³ãƒ†ã‚ストを引数ã¨ã—ã¦å‘¼ã³å‡ºã—ã¾ã™. ã“れã«ã‚ˆã£ã¦å€‹åˆ¥ã®ã‚µ
ブirbã”ã¨ã«è¨å®šã‚’変ãˆã‚‹ã“ã¨ãŒã§ãるよã†ã«ãªã‚Šã¾ã™.
= コマンド
irb拡張コマンドã¯, ç°¡å˜ãªåå‰ã¨é ã«`irb_'ã‚’ã¤ã‘ãŸåå‰ã¨ä¸¡æ–¹å®šç¾©ã•れã¦
ã„ã¾ã™. ã“れã¯, ç°¡å˜ãªåå‰ãŒoverrideã•ã‚ŒãŸæ™‚ã®ãŸã‚ã§ã™.
--- exit, quit, irb_exit
終了ã™ã‚‹.
サブirbã®å ´åˆ, ãã®ã‚µãƒ–irbを終了ã™ã‚‹.
--- conf, irb_context
irbã®ç¾åœ¨ã®è¨å®šã‚’表示ã™ã‚‹. è¨å®šã®å¤‰æ›´ã¯, confã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ã‚‹ã“
ã¨ã«ã‚ˆã£ã¦è¡Œãªãˆã‚‹.
--- conf.eval_history = N
å®Ÿè¡Œçµæžœã®ãƒ’ストリ機能ã®è¨å®š.
nnã¯æ•´æ•°ã‹nilã§ nn>0 ã§ã‚れã°ãã®æ•°ã ã‘ヒストリã«ãŸã‚る。nn==0ã®æ™‚ã¯
無制é™ã«è¨˜æ†¶ã™ã‚‹ã€nilã ã¨ãƒ’ストリ機能ã¯ã‚„ã‚ã‚‹(デフォルト).
--- Conf.back_trace_limit
ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹è¡¨ç¤ºã‚’ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹ã®é ã‹ã‚‰n, 後ã‚ã‹ã‚‰nã ã‘行ãªã†.
デフォルトã¯16
--- conf.debug_level = N
irb用ã®ãƒ‡ãƒãƒƒã‚°ãƒ¬ãƒ™ãƒ«ã®è¨å®š
--- conf.ignore_eof = true/false
^DãŒå…¥åŠ›ã•ã‚ŒãŸæ™‚ã®å‹•作をè¨å®šã™ã‚‹. trueã®æ™‚ã¯^Dを無視ã™ã‚‹, falseã®
時ã¯irbを終了ã™ã‚‹.
--- conf.ignore_sigint= true/false
^CãŒå…¥åŠ›ã•ã‚ŒãŸæ™‚ã®å‹•作をè¨å®šã™ã‚‹. false時ã¯, irbを終了ã™ã‚‹. trueã®
時ã®å‹•作ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚‹:
入力ä¸: ã“れã¾ã§å…¥åŠ›ã—ãŸã‚‚ã®ã‚’ã‚ャンセルã—ãƒˆãƒƒãƒ—ãƒ¬ãƒ™ãƒ«ã«æˆ»ã‚‹.
実行ä¸: å®Ÿè¡Œã‚’ä¸æ¢ã™ã‚‹.
--- conf.inf_ruby_mode = true/false
inf-ruby-mode用ã®ãƒ—ãƒãƒ³ãƒ—ト表示を行ãªã†. デフォルトã¯false.
--- conf.inspect_mode = true/false/nil
インスペクトモードをè¨å®šã™ã‚‹.
true: インスペクトã—ã¦è¡¨ç¤ºã™ã‚‹.
false: 通常ã®printã§è¡¨ç¤ºã™ã‚‹.
nil: 通常モードã§ã‚れã°, inspect modeã¨ãªã‚Š, mathãƒ¢ãƒ¼ãƒ‰ã®æ™‚ã¯, non
inspect modeã¨ãªã‚‹.
--- conf.math_mode
å‚ç…§ã®ã¿. bcモード(分数, 行列ã®è¨ˆç®—ãŒã§ãã¾ã™)ã‹ã©ã†ã‹?
--- conf.use_loader = true/false
load/require時ã«irbã®fileèªã¿è¾¼ã¿æ©Ÿèƒ½ã‚’用ã„るモードã®ã‚¹ã‚¤ãƒƒãƒ(デフォ
ルトã¯ç”¨ã„ãªã„). ã“ã®ãƒ¢ãƒ¼ãƒ‰ã¯IRB全体ã«åæ˜ ã•れる.
--- conf.prompt_c
ifã®ç›´å¾Œãªã©, 行ãŒç¶™ç¶šã—ã¦ã„る時ã®ãƒ—ãƒãƒ³ãƒ—ト.
--- conf.prompt_i
通常ã®ãƒ—ãƒãƒ³ãƒ—ト.
--- conf.prompt_s
æ–‡å—列ä¸ãªã©ã‚’表ã™ãƒ—ãƒãƒ³ãƒ—ト.
--- conf.rc
~/.irbrcã‚’èªã¿è¾¼ã‚“ã ã‹ã©ã†ã‹?
--- conf.use_prompt = true/false
プãƒãƒ³ãƒ—ト表示ã™ã‚‹ã‹ã©ã†ã‹? デフォルトã§ã¯ãƒ—ãƒãƒ³ãƒ—トを表示ã™ã‚‹.
--- conf.use_readline = true/false/nil
readlineを使ã†ã‹ã©ã†ã‹?
true: readlineを使ã†.
false: readlineを使ã‚ãªã„.
nil: (デフォルト)inf-ruby-mode以外ã§readlineライブラリを利用ã—よ
ã†ã¨ã™ã‚‹.
#
#--- conf.verbose=T/F
# irbã‹ã‚‰ã„ã‚ã„ã‚ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’出力ã™ã‚‹ã‹?
--- cws, chws, irb_cws, irb_chws, irb_change_workspace [obj]
objã‚’selfã¨ã™ã‚‹. objãŒçœç•¥ã•れãŸã¨ãã¯, home workspace, ã™ãªã‚ã¡
irbã‚’èµ·å‹•ã—ãŸã¨ãã®main objectã‚’selfã¨ã™ã‚‹.
--- pushws, irb_pushws, irb_push_workspace [obj]
UNIXシェルコマンドã®pushdã¨åŒæ§˜.
--- popws, irb_popws, irb_pop_workspace
UNIXシェルコマンドã®popdã¨åŒæ§˜.
--- irb [obj]
サブirbã‚’ç«‹ã¡ã‚ã’ã‚‹. objãŒæŒ‡å®šã•ã‚ŒãŸæ™‚ã¯, ãã®objã‚’selfã¨ã™ã‚‹.
--- jobs, irb_jobs
サブirbã®ãƒªã‚¹ãƒˆ
--- fg n, irb_fg n
指定ã—ãŸã‚µãƒ–irbã«ã‚¹ã‚¤ãƒƒãƒã™ã‚‹. nã¯, 次ã®ã‚‚ã®ã‚’指定ã™ã‚‹.
irb番å·
スレッド
irbオブジェクト
self(irb objã§èµ·å‹•ã—ãŸæ™‚ã®obj)
--- kill n, irb_kill n
サブirbã‚’killã™ã‚‹. nã¯fgã¨åŒã˜.
--- souce, irb_source path
UNIXシェルコマンドã®sourceã¨ä¼¼ã¦ã„ã‚‹. ç¾åœ¨ã®ç’°å¢ƒä¸Šã§path内ã®ã‚¹ã‚¯ãƒª
プトを評価ã™ã‚‹.
--- irb_load path, prev
Rubyã®loadã®irb版.
= システム変数
--- _
å‰ã®è¨ˆç®—ã®å®Ÿè¡Œçµæžœã‚’覚ãˆã¦ã„ã‚‹(ãƒãƒ¼ã‚«ãƒ«å¤‰æ•°).
--- __
å®Ÿè¡Œçµæžœã®å±¥æ´ã‚’覚ãˆã¦ã„ã‚‹.
__[line_no]ã§ã€ãã®è¡Œã§å®Ÿè¡Œã—ãŸçµæžœã‚’å¾—ã‚‹ã“ã¨ãŒã§ãã‚‹. line_noãŒè² ã®
時ã«ã¯ã€æœ€æ–°ã®çµæžœã‹ã‚‰-line_noå‰ã®çµæžœã‚’å¾—ã‚‹ã“ã¨ãŒã§ãã‚‹.
= 使用例
以下ã®ã‚ˆã†ãªæ„Ÿã˜ã§ã™.
dim% ruby irb.rb
irb(main):001:0> irb # サブirbã®ç«‹ã¡ã‚ã’
irb#1(main):001:0> jobs # サブirbã®ãƒªã‚¹ãƒˆ
#0->irb on main (#<Thread:0x400fb7e4> : stop)
#1->irb#1 on main (#<Thread:0x40125d64> : running)
nil
irb#1(main):002:0> fg 0 # jobã®ã‚¹ã‚¤ãƒƒãƒ
nil
irb(main):002:0> class Foo;end
nil
irb(main):003:0> irb Foo # Fooをコンテã‚ストã—ã¦irb
# ç«‹ã¡ã‚ã’
irb#2(Foo):001:0> def foo # Foo#fooã®å®šç¾©
irb#2(Foo):002:1> print 1
irb#2(Foo):003:1> end
nil
irb#2(Foo):004:0> fg 0 # jobをスイッãƒ
nil
irb(main):004:0> jobs # jobã®ãƒªã‚¹ãƒˆ
#0->irb on main (#<Thread:0x400fb7e4> : running)
#1->irb#1 on main (#<Thread:0x40125d64> : stop)
#2->irb#2 on Foo (#<Thread:0x4011d54c> : stop)
nil
irb(main):005:0> Foo.instance_methods # Foo#fooãŒã¡ã‚ƒã‚“ã¨å®šç¾©ã•
# れã¦ã„ã‚‹
["foo"]
irb(main):006:0> fg 2 # jobをスイッãƒ
nil
irb#2(Foo):005:0> def bar # Foo#barを定義
irb#2(Foo):006:1> print "bar"
irb#2(Foo):007:1> end
nil
irb#2(Foo):010:0> Foo.instance_methods
["bar", "foo"]
irb#2(Foo):011:0> fg 0
nil
irb(main):007:0> f = Foo.new
#<Foo:0x4010af3c>
irb(main):008:0> irb f # Fooã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã§irbã‚’
# ç«‹ã¡ã‚ã’ã‚‹.
irb#3(#<Foo:0x4010af3c>):001:0> jobs
#0->irb on main (#<Thread:0x400fb7e4> : stop)
#1->irb#1 on main (#<Thread:0x40125d64> : stop)
#2->irb#2 on Foo (#<Thread:0x4011d54c> : stop)
#3->irb#3 on #<Foo:0x4010af3c> (#<Thread:0x4010a1e0> : running)
nil
irb#3(#<Foo:0x4010af3c>):002:0> foo # f.fooã®å®Ÿè¡Œ
nil
irb#3(#<Foo:0x4010af3c>):003:0> bar # f.barã®å®Ÿè¡Œ
barnil
irb#3(#<Foo:0x4010af3c>):004:0> kill 1, 2, 3# jobã®kill
nil
irb(main):009:0> jobs
#0->irb on main (#<Thread:0x400fb7e4> : running)
nil
irb(main):010:0> exit # 終了
dim%
= 使用上ã®åˆ¶é™
irbã¯, 評価ã§ãる時点(å¼ãŒé–‰ã˜ãŸæ™‚点)ã§ã®é€æ¬¡å®Ÿè¡Œã‚’行ãªã„ã¾ã™. ã—ãŸãŒã£
ã¦, rubyを直接使ã£ãŸæ™‚ã¨, 若干異ãªã‚‹å‹•作を行ãªã†å ´åˆãŒã‚りã¾ã™.
ç¾åœ¨æ˜Žã‚‰ã‹ã«ãªã£ã¦ã„ã‚‹å•題点を説明ã—ã¾ã™.
== ãƒãƒ¼ã‚«ãƒ«å¤‰æ•°ã®å®£è¨€
rubyã§ã¯, 以下ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã¯ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™.
eval "foo = 0"
foo
--
-:2: undefined local variable or method `foo' for #<Object:0x40283118> (NameError)
---
NameError
ã¨ã“ã‚ãŒ, irbを用ã„ã‚‹ã¨
>> eval "foo = 0"
=> 0
>> foo
=> 0
ã¨ãªã‚Š, エラーを起ã“ã—ã¾ã›ã‚“. ã“れã¯, rubyãŒæœ€åˆã«ã‚¹ã‚¯ãƒªãƒ—ト全体をコン
パイルã—ã¦ãƒãƒ¼ã‚«ãƒ«å¤‰æ•°ã‚’決定ã™ã‚‹ã‹ã‚‰ã§ã™. ãれã«å¯¾ã—, irbã¯å®Ÿè¡Œå¯èƒ½ã«
ãªã‚‹(å¼ãŒé–‰ã˜ã‚‹)ã¨è‡ªå‹•çš„ã«è©•価ã—ã¦ã„ã‚‹ã‹ã‚‰ã§ã™. 上記ã®ä¾‹ã§ã¯,
evel "foo = 0"
を行ãªã£ãŸæ™‚点ã§è©•価を行ãªã„, ãã®æ™‚点ã§å¤‰æ•°ãŒå®šç¾©ã•れるãŸã‚, 次å¼ã§
変数fooã¯å®šç¾©ã•れã¦ã„ã‚‹ã‹ã‚‰ã§ã™.
ã“ã®ã‚ˆã†ãªrubyã¨irbã®å‹•作ã®é•ã„を解決ã—ãŸã„å ´åˆã¯, begin...endã§æ‹¬ã£ã¦
ãƒãƒƒãƒçš„ã«å®Ÿè¡Œã—ã¦ä¸‹ã•ã„:
>> begin
?> eval "foo = 0"
>> foo
>> end
NameError: undefined local variable or method `foo' for #<Object:0x4013d0f0>
(irb):3
(irb_local_binding):1:in `eval'
== ヒアドã‚ュメント
ç¾åœ¨ã®ã¨ã“ã‚ヒアドã‚ュメントã®å®Ÿè£…ã¯ä¸å®Œå…¨ã§ã™.
== シンボル
シンボルã§ã‚ã‚‹ã‹ã©ã†ã‹ã®åˆ¤æ–ã‚’é–“é•ãˆã‚‹ã“ã¨ãŒã‚りã¾ã™. 具体的ã«ã¯å¼ãŒå®Œäº†
ã—ã¦ã„ã‚‹ã®ã«ç¶™ç¶šè¡Œã¨è¦‹ãªã™ã“ã¨ãŒã‚りã¾ã™.
=end
% Begin Emacs Environment
% Local Variables:
% mode: text
% comment-column: 0
% comment-start: "%"
% comment-end: "\n"
% End:
%
ß
yôÊá½~ŒorÀ5ÖJ™={þÁEÇêe¾uç£Qk ®•ᯘG{÷?ù»ã+—]üôçƒÉÍ×ןô?wûM3X^¶ÚæŒ>{´7Ù¾ì´Kã>èo²ÎnÝ\ÿªÊj¿y· ðR£õãg/î=ÞÿfúOçÖr·o×NVÊv¿ú~ÿY+ ü¿NGêu÷ø·Ã®›þë¹HWŠûyëwÆ[eQ¶Ê¨¾SÚbÖ>öÍËÇ þ³>ä}Gçmx[o[<ÞÚ{ðýŸÏ®_ÅïqF–ÚÛvM IEND®B`‚