Ruby%运算符
我很难理解下面的代码片段在做什么Ruby%运算符,ruby,string,Ruby,String,我很难理解下面的代码片段在做什么 "foo = %{foo}" % { :foo => 'bar' } => "foo = bar" 因此,根据理解,“foo=%{foo}”是格式规范,但在本例中,它似乎使用%{foo}执行变量插值?使用给定字符串作为格式规范,并应用参数(数组/哈希)并返回结果字符串 %{…}是按名称格式化的引用。还有%也需要格式样式(s、d、f等) “foo=%{key}”%{:key=>'bar'} #=>“foo=bar” “foo=%s”%{:key=>b
"foo = %{foo}" % { :foo => 'bar' }
=> "foo = bar"
因此,根据理解,“foo=%{foo}”是格式规范,但在本例中,它似乎使用%{foo}执行变量插值?使用给定字符串作为格式规范,并应用参数(数组/哈希)并返回结果字符串
%{…}
是按名称格式化的引用。还有%
也需要格式样式(s、d、f等)
“foo=%{key}”%{:key=>'bar'}
#=>“foo=bar”
“foo=%s”%{:key=>bar'}
#=>“foo=bar”
有关格式规范的更多详细信息,请参阅。字符串的#%引用
在sprintf的文档末尾,您将看到两种使用名称(带有散列参数)而不是位置(带有数组参数)的替换类型的简要说明。解释类似内容的简单方法是查看行的第一部分,这是字符串文字(
foo=%{foo}
),因此,%符号表示字符串()的%方法,因此文本实际上是格式规范的第一部分,即字符串的表示方式。%后面的部分必须是数组或散列,在本例中是进行命名替换的散列,这意味着键
是散列中必须存在的键的名称,返回值条
您可以使用普通替换编写此代码,但需要两行代码
hash = { :key => 'bar' }
"foo = #{hash[:key]}"
或者只是使用一个变量
foo = "bar"
"foo = #{foo}"
如果不涉及其他内容,则可读性更高。希望示例片段更好;左撇子把我弄糊涂了。如果可能,尝试将其更改为其他内容,可能会使代码片段更清晰。
foo = "bar"
"foo = #{foo}"