当我运行我的红宝石文件红宝石未定义的方法'写”为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 –