刚刚开始学习编程,并从Ruby开始。从Zed Shaw的艰难学习Ruby
做一些复制打字练习在练习15和16中,覆盖打开文件时,我尝试运行时会遇到同样的问题。
target = open(filename, 'w')
我收到消息:
say.rb:10:
open': no implicit conversion of nil into String (TypeError) from say.rb:10:in
'
这是什么意思?我该如何纠正这个?
提前致谢!
答案 0 :(得分:0)
我认为您的filename
变量值未初始化或为零。
filename = "path/to/file"
target = open(filename, 'w') if filename.present?
答案 1 :(得分:-1)
每个人:谢谢你盯着我的问题。我让我的一个朋友弄明白问题是什么。我忘记了练习的重点是使用ARGV,这是缺失的环节,因而也就是错误。第一行代码是:filename = ARGV.first。当我在终端上运行它时,我将其作为> ruby say.rb运行,之后没有提交文件名。因此,在提示符下,我应该将其提交为> ruby say.rb whateverfilename.doc。所以,没有这个,该计划没有什么可以咀嚼的。再次感谢!