Я не понимаю, почему string.size возвращает то, что делает

long_string = <<EOS
It was the best of times,
It was the worst of times.
EOS

, который возвращает 53. Почему? Пробелы в счет? Даже до сих пор. как мы получаем 53?

Как насчет этого?

     def test_flexible_quotes_can_handle_multiple_lines
    long_string = %{
It was the best of times,
It was the worst of times.
}
    assert_equal 54, long_string.size
  end

  def test_here_documents_can_also_handle_multiple_lines
    long_string = <<EOS
It was the best of times,
It was the worst of times.
EOS
    assert_equal 53, long_string.size
  end

Это так, потому что регистр% {считает каждый / n как один символ, и считается, что один перед первой строкой в конце, а затем в конце 2-й строки, тогда как в случае EOS есть только один перед 1-й строкой и один после 1-й строки? Другими словами, почему первое 54, а второе 53?

7
задан Andrew Grimm 14 June 2011 в 03:13
поделиться