无需转义反斜杠的字符串文字
String literal without need to escape backslash
在 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 是否与 @
等效?
Ruby 中有一些类似的东西。例如
foo = %Q(The integer division operator in VisualBASIC is written "a \ b" and #{'interpolation' + ' works'})
您还可以在其中插入字符串。唯一需要注意的是,您仍然需要转义 \
字符。
HTH
您可以使用带单引号的 heredoc。
foo = <<'_'
The integer division operator in VisualBASIC is written "a \ b";
_
如果你想去掉末尾的换行符,那么chomp
它。
请注意,这不适用于字符串插值。如果要在字符串中插入求值表达式,可以在创建字符串后使用 %
操作。
foo = <<'_'
text %{value}
_
foo.chomp % {value: "foo"}
在 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 是否与 @
等效?
Ruby 中有一些类似的东西。例如
foo = %Q(The integer division operator in VisualBASIC is written "a \ b" and #{'interpolation' + ' works'})
您还可以在其中插入字符串。唯一需要注意的是,您仍然需要转义 \
字符。
HTH
您可以使用带单引号的 heredoc。
foo = <<'_'
The integer division operator in VisualBASIC is written "a \ b";
_
如果你想去掉末尾的换行符,那么chomp
它。
请注意,这不适用于字符串插值。如果要在字符串中插入求值表达式,可以在创建字符串后使用 %
操作。
foo = <<'_'
text %{value}
_
foo.chomp % {value: "foo"}