字符串文字,无需转义反斜杠

时间:2015-03-18 13:57:56

标签: ruby string literals

在C#中,我可以在字符串前使用@来编写反斜杠和其他特殊字符,而不必转义,但我必须转义双引号。

C#

string foo = "The integer division operator in VisualBASIC is written \"a \\ b\"";
string bar = @"The integer division operator in VisualBASIC is written \"a \ b\""

在Ruby中,我可以使用单引号字符串文字,但我想将其与字符串插值结合使用,如"text #{value}"。在C#中,Ruby中的等价物是@吗?

2 个答案:

答案 0 :(得分:6)

Ruby中有一些类似的东西。 E.g。

foo = %Q(The integer division operator in VisualBASIC is written "a \\ b" and #{'interpolation' + ' works'})

您还可以在其中插入字符串。唯一需要注意的是,您仍需要转义\字符。

HTH

答案 1 :(得分:2)

您可以将heredoc与单引号一起使用。

foo = <<'_'
The integer division operator in VisualBASIC is written "a \ b";
_

如果你想在最后删除换行符,那么chomp就可以了。

请注意,这不适用于字符串插值。如果要在字符串中插入已计算的表达式,可以在创建字符串后使用%操作。

foo = <<'_'
text %{value}
_

foo.chomp % {value: "foo"}