小编El0*_*El0的帖子

Ruby中的"#@ {var}"和"@#{var}"有什么区别?

我对Ruby很新,并且总是假设这两个符号是插入实例变量的相同方式,直到我注意到下面的示例代码中'vendor'参数的不同之处.

class Component
    def  initialize(name, version)
         @vendor = "vendor"
         @name = name
         @version = version
         puts  "#{@vendor}-@#{name}-@#{version}" 
    end 
end

ConfiguredComponent.new("param1", "param2")
Run Code Online (Sandbox Code Playgroud)

=>这个有效

class Component
    def  initialize(name, version)
         @vendor = "vendor"
         @name = name
         @version = version
         puts  "@#{vendor}-@#{name}-@#{version}" 
    end 
end

ConfiguredComponent.new("param1", "param2")
Run Code Online (Sandbox Code Playgroud)

=>使用@#vendor}表示法不起作用=> :'initialize':未定义的局部变量或方法`vendor'for#(NameError)

  class Component
     def  initialize(name, version)
        @vendor = "vendor"
        @name = name
        @version = version
        puts  "#{@vendor}-#{@name}-#{@version}" 
     end 
  end

  Component.new("param1", "param2")
Run Code Online (Sandbox Code Playgroud)

=>这也有效

ruby string-interpolation

1
推荐指数
1
解决办法
245
查看次数

标签 统计

ruby ×1

string-interpolation ×1