代码之家  ›  专栏  ›  技术社区  ›  Hearen

我能把`{file#u name}`简化一下吗?

  •  0
  • Hearen  · 技术社区  · 7 年前

    写这样的东西看起来很冗长 "#{file_name}" 而不仅仅是 file_name

      def write_hello(file_name)
        File.open("#{file_name}", "w") { |file| file.puts "Hello, world! I'm Ruby :)"}
      end
    

    我能做些什么使它更干净?

    naming conventions fileName 文件名 现在。

    2 回复  |  直到 7 年前
        1
  •  5
  •   tadman    7 年前

    那是不必要的冗长。

    x = "test"
    "#{x}"
    # => "test"
    

    你的情况也一样。

    def write_hello(filename)
      File.open(filename, "w") do |file|
        file.puts "Hello, world! I'm Ruby :)"
      end
    end
    

    这使用多行 do ... end 通常更容易理解和理解的形式,但在其他方面与 { ... } 形式。新的Ruby用户可能会有点困惑于 { x: 'y' } { |x| 'y' } 是完全不同的东西,所以这避免了模棱两可的地方。

    没有必要孤立地引用某些东西。如果要附加文件扩展名,则需要这样做,例如:

    File.open("#{filename}.txt", "w") do |file|
      # ...
    end
    

    write_hello(:example)
    

    这将创造 example.txt

        2
  •  2
  •   sawa    7 年前

    fileName ,尽管Rubyist不会在camel case中这样命名变量。

    File.write(fileName, "Hello, world! I'm Ruby :)")
    

    尽管您必须在字符串的末尾显式地添加一个新行字符,如果您需要的话,就像Stefan所说的那样。

    推荐文章