Ruby 我可以做“吗?”#{file_name}";`更简单?
像这样编写Ruby 我可以做“吗?”#{file_name}";`更简单?,ruby,string,Ruby,String,像这样编写“{file\u name}”而不仅仅是file\u name,看起来相当冗长 def write_hello(file_name) File.open("#{file_name}", "w") { |file| file.puts "Hello, world! I'm Ruby :)"} end 我能做些什么使它更干净 已更新 我只有ruby,所以我现在将文件名更新为文件名 您的代码可以工作,但实际上是糟糕的代码。事实上,它应该写成文件名,尽管Rubyist不会这样
“{file\u name}”
而不仅仅是file\u name
,看起来相当冗长
def write_hello(file_name)
File.open("#{file_name}", "w") { |file| file.puts "Hello, world! I'm Ruby :)"}
end
我能做些什么使它更干净
已更新
我只有ruby,所以我现在将
文件名
更新为文件名
您的代码可以工作,但实际上是糟糕的代码。事实上,它应该写成文件名
,尽管Rubyist不会这样命名变量
不过,最好写得短一些,比如
File.write(fileName, "Hello, world! I'm Ruby :)")
尽管您必须在字符串的末尾显式添加一个新行字符(如果需要的话)。这是不必要的冗长
x = "test"
"#{x}"
# => "test"
在你的情况下,这是完全一样的
此代码的Ruby惯用版本如下所示:
def write_hello(filename)
File.open(filename, "w") do |file|
file.puts "Hello, world! I'm Ruby :)"
end
end
这使用多行do。。。结束
表单,通常更容易理解和理解,但在其他方面与{…}表单等效。Ruby新手可能会对{x:'y'}
和{x | y'}
是多么的不同感到困惑,因此这避免了这里的歧义
没有必要孤立地引用某些东西。如果要附加文件扩展名,则需要这样做,如:
File.open("#{filename}.txt", "w") do |file|
# ...
end
你可以这样称呼它:
write_hello(:example)
这将创建
example.txt
对不起,这是ruby中的第一次。仍然不知道一切是如何运作的。基本功能仍处于启用状态时喋喋不休……write
不会添加换行符(与put
)相切,但那些相同的命名约定将需要write\u hello
而不是writeHello
。坚持住黛雅!谢谢,只关注变量名。下次当你问自己“我能做x而不是y吗?”,你应该试一下:-)Stefan,很抱歉这个愚蠢的问题。我试过IntelliJ 2018.3,但它突出显示,工作异常。问这个问题很傻,现在看起来很傻,但那个时候对我来说很困惑。感谢您的~友好提醒~。谢谢;)在这方面,RubyMine更有用。