當我運行我的紅寶石文件紅寶石未定義的方法'寫」爲IO:類(NoMethodError)
ruby test.rb
其中有一行:
IO.write("testfile.txt","123")
我得到
test.rb:1:in `<main>': undefined method `write' for IO:Class (NoMethodError)
當我運行我的紅寶石文件紅寶石未定義的方法'寫」爲IO:類(NoMethodError)
ruby test.rb
其中有一行:
IO.write("testfile.txt","123")
我得到
test.rb:1:in `<main>': undefined method `write' for IO:Class (NoMethodError)
那麼,你期望什麼樣的答案? IO
沒有任何類方法,稱爲write
。最多有binwrite
和實例方法#write
。
因此,無論您使用binwrite
(http://rubydoc.info/stdlib/core/1.9.3/IO.binwrite),或者你使用File
類和去的
File.open("testfile.txt", "w") { |f| f << "123" }
全路編輯:顯然有一個IO.write
方法從Ruby 1.9.3開始。然而,在1.9或1.8的早期版本中沒有這樣的方法。
IO沒有「內置」寫入方法。 File.write應該做這個工作
也許如果有'File.write'方法。它再次是'File#write',它就是從'IO'繼承的'IO#write'方法'File' –
有一對夫婦的問題,
如果你想寫入一個文件,你應該使用File類
File.open(「testfile.txt」,「w」)do | file | file.write(「123」) 結束
我想你可能剛剛開始使用Ruby所以它可能是讀了一本書,其中紅寶石會顯示一些這些基礎的一個好主意。我曾使用David Flanagan和Matz的「The Ruby Programming Language」,但不少人使用Dave Thomas,Chad Fowler和Andy Hunt所說的Pickaxe書籍或「編程Ruby」。
謝謝!我正在閱讀1.9.3 rubydoc並使用了ruby 1.9.2,它在更新之後現在運行良好。你怎麼看到在哪個版本中引入了一種方法? – cande
該文檔不包含任何線索。唯一的辦法是閱讀新版本的更新日誌,或者那些聚集了「已更改」博客帖子的更新日誌,即使這些日誌可能不完整。 –
@cande apidock.com非常有幫助。它顯示何時添加/更改方法,還允許人們留下有關其使用的評論/提示。對於IO.write它的http://apidock.com/ruby/v1_9_3_125/IO/write/class –