【问题标题】:Why do I get an error due to two backslashes \\?为什么由于两个反斜杠 \\ 会出现错误?
【发布时间】:2013-06-11 20:14:31
【问题描述】:

我正在编写测试并验证一些数据。由于两个 \\ 我在预期的数据字符串中,它失败了。

我的测试代码是:

actual_string.should eq 'Today is Tuesday.\n It is third day of the week.'

当我执行此代码时,我收到一条错误消息,指出实际数据与预期数据不匹配。

实际数据为:

'Today is Tuesday.\n It is third day of the week.'

预期的数据是:

'Today is Tuesday.\\n It is third day of the week.'

不确定预期数据中多余的斜杠“\”是从哪里来的。我该如何解决这个问题?

【问题讨论】:

  • 使用双引号 " - 断言中的反斜杠在单引号内时是文字反斜杠。
  • @NeilSlater 这是一个答案,不是吗? ;)
  • 那么单引号和双引号的主要区别是什么。 Ruby 两者都支持吧?

标签: ruby-on-rails ruby ruby-on-rails-3.2 rubygems ruby-test


【解决方案1】:

使用“文本” - 双引号....

【讨论】:

    【解决方案2】:

    与其他语言(例如 Python、JavaScript 等)不同,Ruby 在单引号和双引号字符串中使用不同的转义序列。

    单引号字符串仅支持\'\\。其他一切都按字面意思对待。所以,'\n' 是两个字符 \n,而不是一个换行符。

    要使用换行符,请将字符串括在双引号中:

    actual_string.should eq "Today is Tuesday.\n It is third day of the week."
    

    这将修复您的测试。

    【讨论】:

      猜你喜欢
      • 2022-01-17
      相关资源
      最近更新 更多