在Ruby上编写一个具有已定义函数的新文件
在练习19的《学习Ruby的艰难之路》一书中,它说人们应该使用提供的函数:在Ruby上编写一个具有已定义函数的新文件,ruby,function,Ruby,Function,在练习19的《学习Ruby的艰难之路》一书中,它说人们应该使用提供的函数: def cheese_and_crackers(cheese_count, boxes_of_crackers) puts "You have #{cheese_count} cheeses!" puts "You have #{boxes_of_crackers} boxes of crackers!" puts "Man that's enough for a party!" puts "Get a
def cheese_and_crackers(cheese_count, boxes_of_crackers)
puts "You have #{cheese_count} cheeses!"
puts "You have #{boxes_of_crackers} boxes of crackers!"
puts "Man that's enough for a party!"
puts "Get a blanket.\n"
end
并用它探索不同的方法。我尝试探索函数的参数并用它编写文本:
file = ARGV.first
puts "Let's make a test?"
puts "Does the output file exist? #{File.exist?(arquivo)} "
puts "Ready, hit RETURN to continue, CTRL-C to abort."
$stdin.gets
def success(price, recipe)
puts """Text goes on like this:
In order to become a coder, You must dedicate yourself.\n
For that, you must pay a price, such as #{price}\n
Becoming a coder also requires #{recipe}\n"""
end
puts "What is the price to pay in order to become a coder?"
price = $stdin.gets
puts "What are the fundamental components in order to become a coder?"
recipe = $stdin.gets
coder = success(price, recipe)
motivational = File.open(file, 'w')
motivational.write(coder)
puts "Read this every day."
但我似乎无法让它将函数写入新的
test.txt
文件。test.txt
文件显示为空。调用put
时,您正在写入stdout,但返回值将为空
更改此项:
def success(price, recipe)
return """Text goes on like this:
In order to become a coder, You must dedicate yourself.\n
For that, you must pay a price, such as #{price}\n
Becoming a coder also requires #{recipe}\n"""
end
然后还:
motivational.close()
编辑:这里有一个扩展的解释:当调用put
时,您只是将字符串写入stdout,这是程序的默认输出。方法(函数)可以有一个返回值。对于success
方法,需要返回字符串,以便将其写入文件。如果调用put
而不是return
,则success
方法将不会返回任何值,因此将文件保留为空
至于close()
调用,建议在脚本结束之前关闭文件流
有关更多信息,请查看这些参考资料:
调用
put
时,您正在写入标准输出,但返回值将为空
更改此项:
def success(price, recipe)
return """Text goes on like this:
In order to become a coder, You must dedicate yourself.\n
For that, you must pay a price, such as #{price}\n
Becoming a coder also requires #{recipe}\n"""
end
然后还:
motivational.close()
编辑:这里有一个扩展的解释:当调用put
时,您只是将字符串写入stdout,这是程序的默认输出。方法(函数)可以有一个返回值。对于success
方法,需要返回字符串,以便将其写入文件。如果调用put
而不是return
,则success
方法将不会返回任何值,因此将文件保留为空
至于close()
调用,建议在脚本结束之前关闭文件流
有关更多信息,请查看这些参考资料:
你能说得更清楚些吗?你所说的返回值是什么意思?还有,在函数中返回意味着什么?@PetrusLee当然!刚才加了一个更详细的解释,你能说清楚吗?你所说的返回值是什么意思?还有,在函数中返回意味着什么?@PetrusLee当然!只是增加了一个更详细的解释。