有没有推荐适合Ruby语言的替代品?
- 内容介绍
- 文章标签
- 相关推荐
本文共计526个文字,预计阅读时间需要3分钟。
在Ruby中,即使没有使用花括号,字符串插值也可以工作,这是因为Ruby提供了一个内置的`%`操作符,它可以用来格式化字符串。以下是简化的开头内容:
在Ruby中,即使没有使用花括号,字符串插值也能工作,因为`%`操作符可以用来进行字符串格式化。例如,以下代码:
rubyputs a string with #{variable}
这里的`#{variable}`就是一个没有花括号的字符串插值示例。Ruby会自动将`variable`的值插入到字符串中。所以,如果你写成:
rubyputs a string with %s % variable
这里的`%s`告诉Ruby你想要插入一个字符串。同样,Ruby会替换`%s`位置上的`variable`值。因此,这两种方法都能实现字符串插值。
请注意以下事项:
"abcd#fg" # => "abcd#fg" "abcd#$fg" # => "abcd" characters #$and after them are skipped "abcd#@fg" # => "abcd" characters #@ and after them are skipped
它可以是#而不是#{}的字符串插值.
$fg = 8 "abcd#$fg" # => "abcd8" @fg = 6 "abcd#@fg" # => "abcd6"
它像插值一样工作.这是一个错误还是一个功能?
您实际上可以插入省略大括号的全局,实例和类变量:$world = 'world' puts "hello, #$world" # hello, world
在你的例子中,$fg和@fg都是未初始化的,因此被评估为nil,这就是为什么它们作为空字符串被内嵌的原因.当你写“abcd#fg”时,没有插入任何内容,因为#后面没有{,@,$.
您可以找到RubySpec中记录的功能(感谢@DavidMiani).
如果你问我,不要依赖这种行为,并且总是使用大括号插入变量,这既是为了便于阅读,也是为了避免出现以下问题:
@variable = 'foo' puts "#@variable_bar"
这将输出一个空字符串而不是可能的预期字符串“foo_bar”,因为它试图插入未定义的实例变量@variable_bar.
本文共计526个文字,预计阅读时间需要3分钟。
在Ruby中,即使没有使用花括号,字符串插值也可以工作,这是因为Ruby提供了一个内置的`%`操作符,它可以用来格式化字符串。以下是简化的开头内容:
在Ruby中,即使没有使用花括号,字符串插值也能工作,因为`%`操作符可以用来进行字符串格式化。例如,以下代码:
rubyputs a string with #{variable}
这里的`#{variable}`就是一个没有花括号的字符串插值示例。Ruby会自动将`variable`的值插入到字符串中。所以,如果你写成:
rubyputs a string with %s % variable
这里的`%s`告诉Ruby你想要插入一个字符串。同样,Ruby会替换`%s`位置上的`variable`值。因此,这两种方法都能实现字符串插值。
请注意以下事项:
"abcd#fg" # => "abcd#fg" "abcd#$fg" # => "abcd" characters #$and after them are skipped "abcd#@fg" # => "abcd" characters #@ and after them are skipped
它可以是#而不是#{}的字符串插值.
$fg = 8 "abcd#$fg" # => "abcd8" @fg = 6 "abcd#@fg" # => "abcd6"
它像插值一样工作.这是一个错误还是一个功能?
您实际上可以插入省略大括号的全局,实例和类变量:$world = 'world' puts "hello, #$world" # hello, world
在你的例子中,$fg和@fg都是未初始化的,因此被评估为nil,这就是为什么它们作为空字符串被内嵌的原因.当你写“abcd#fg”时,没有插入任何内容,因为#后面没有{,@,$.
您可以找到RubySpec中记录的功能(感谢@DavidMiani).
如果你问我,不要依赖这种行为,并且总是使用大括号插入变量,这既是为了便于阅读,也是为了避免出现以下问题:
@variable = 'foo' puts "#@variable_bar"
这将输出一个空字符串而不是可能的预期字符串“foo_bar”,因为它试图插入未定义的实例变量@variable_bar.

