我无法将IO.read理解为ruby参数
我正在检查RubyQuike上的madlib练习,遇到了一行我不理解的内容:我无法将IO.read理解为ruby参数,ruby,io,Ruby,Io,我正在检查RubyQuike上的madlib练习,遇到了一行我不理解的内容: madlib = Madlib.new(IO.read(ARGV.shift)) 我在谷歌上搜索了大量内容,但没有发现任何有用的东西。 我不知道该怎么办 madlib = Madlib.new(IO.read(ARGV.shift)) answers = [] madlib.list_questions do |i, q| print "Give me " + q + ": " answers[i] =
madlib = Madlib.new(IO.read(ARGV.shift))
我在谷歌上搜索了大量内容,但没有发现任何有用的东西。
我不知道该怎么办
madlib = Madlib.new(IO.read(ARGV.shift))
answers = []
madlib.list_questions do |i, q|
print "Give me " + q + ": "
answers[i] = gets.strip
end
answers.each_index {|i| madlib.answer_question(i, answers[i]) }
puts madlib.show_result
短版
它将指定为参数的文件内容(ruby script.rb file.txt
)作为单个字符串发送到Madlib.new
较长版本
ARGV.shift
ARGV.shift
是ruby script.rb
之后的第一个参数。用于:
ruby script.rb some_text_file.txt
它是一些文本文件.txt
请注意,ARGV.shift
还会从ARGV
中删除第一个参数。下次调用ARGV.shift
时,它将返回ruby script.rb
之后的第二个参数
IO.read()
IO.read('file.txt')
读取file.txt
的全部内容,并将其作为字符串返回
由于File
继承自IO
,并且这里的示例读取文件,因此也可以将其写入File.read(filename)
Madlib.new()
IO.read
返回的字符串被发送到Madlib.new
短版本
它将指定为参数的文件内容(ruby script.rb file.txt
)作为单个字符串发送到Madlib.new
较长版本
ARGV.shift
ARGV.shift
是ruby script.rb
之后的第一个参数。用于:
ruby script.rb some_text_file.txt
它是一些文本文件.txt
请注意,ARGV.shift
还会从ARGV
中删除第一个参数。下次调用ARGV.shift
时,它将返回ruby script.rb
之后的第二个参数
IO.read()
IO.read('file.txt')
读取file.txt
的全部内容,并将其作为字符串返回
由于File
继承自IO
,并且这里的示例读取文件,因此也可以将其写入File.read(filename)
Madlib.new()
IO.read
返回的字符串被发送到Madlib.new
确实很简单
IO.read
用于读取一个文件,该文件的名称位于数组ARGV中,其中包含传递给此Ruby程序的参数
顺序是:
ARV.shift
返回ARGV数组的第一个元素,即文件名李>
IO.read
接收该参数,读取相应的文件并返回其内容;以及Madlib.new
接收这些内容,并基于它们创建一个Madlib.new实例正如您所看到的,传递给
Madlib.new
的实际参数是IO.read
的结果,而不是IO.read
本身。确实很简单
IO.read
用于读取一个文件,该文件的名称位于数组ARGV中,其中包含传递给此Ruby程序的参数
顺序是:
ARV.shift
返回ARGV数组的第一个元素,即文件名李>
IO.read
接收该参数,读取相应的文件并返回其内容;以及Madlib.new
接收这些内容,并基于它们创建一个Madlib.new实例正如您所看到的,传递给
Madlib.new
的实际参数是IO.read
的结果,而不是IO.read
本身。谢谢,我终于能够让它在我的机器上工作了。很高兴有人来解释…谢谢,我终于可以让它在我的机器上工作了。很高兴有人来解释…谢谢,Ed。非常有帮助!谢谢你,Ed。非常有帮助!你的问题不清楚。事实上,你连一个问题都没有!只有一个声明。你真正的问题是什么?你的问题不清楚。事实上,你连一个问题都没有!只有一个声明。你真正的问题是什么?