有在the book一個例子:
"Seconds/day: #{24*60*60}" # => Seconds/day: 86400
"#{'Ho! '*3}Merry Christmas!" # => Ho! Ho! Ho! Merry Christmas!
"This is line #$." # => This is line 3
但是,當我試圖實現在一個單獨的文件中的第三行的符號#$
它,它打印不便奇怪。這是我的文件str2.rb
:
puts "Hello, World #$."
puts "Hello, World #$"
puts "#$"
現在我運行它(在Win XP控制檯):
C:\ruby\sbox>ruby str2.rb Hello, World 0 Hello, World ["enumerator.so", "C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/i386-mingw32/enc/encdb.so", "C:/Rai lsInstaller/Ruby1.9.3/lib/ruby/1.9.1/i386-mingw32/enc/windows_1251.so", "C:/RailsInstaller/Ruby1.9.3/lib/ruby/ 1.9.1/i386-mingw32/enc/trans/transdb.so", "C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/defau lts.rb", "C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/i386-mingw32/rbconfig.rb", "C:/RailsInstaller/Ruby1.9.3/l ib/ruby/site_ruby/1.9.1/rubygems/deprecate.rb", "C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems /exceptions.rb", "C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/defaults/operating_system.rb", "C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb", "C:/RailsInstaller/Ruby1.9 .3/lib/ruby/site_ruby/1.9.1/rubygems.rb", "C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/i386-mingw32/enc/utf_16l e.so", "C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/i386-mingw32/enc/trans/utf_16_32.so", "C:/RailsInstaller/Ru by1.9.3/lib/ruby/1.9.1/i386-mingw32/enc/trans/single_byte.so"] puts
我發現#$.
(期間是強制性)表示僅交互式Ruby的行號安慰。在文件中使用它會在任何行上生成0
。但是,如果我使用這種符號"#$" \n "#$"
,爲什麼所有文本都會打印?
而且在文件中這樣的代碼:
puts "Hello, World #$" ## without period at the end
產生這樣的錯誤:
C:\ruby\sbox>ruby str2.rb
str2.rb:3: unterminated string meets end of file
是什麼#$
意思?在哪裏以及如何使用它?
這個怎麼樣'看跌期權 「#$結束」'和'看跌期權 「#{$}」'? – codeit 2013-03-02 15:58:17
@codeit第一個沒有什麼特別的 - 它打印全局變量'$ end'的內容。第二個不是完整的表達。 – 2013-03-02 16:02:58
那麼,這是否回答你的問題?不要忘記[upvote /接受你的問題的答案](http://meta.stackexchange.com/a/5235/158402)':)' – 2013-06-02 12:36:34