Нужно ли мне отступать мой код в Ruby?

Вы могли бы подумать, что это будет простой вопрос, но я не могу найти ответ нигде. > _ & Л;

Будет ли Ruby вызывать синтаксические ошибки, если мой код имеет отступ неправильно? Например, будет ли код похож на эту работу?

if str.blank?
  str = "Hello World"
no_input = true
  end

Очевидно, что это плохой стиль, и я должен отступать правильно независимо. Я хочу знать, могу ли я это исключить как причину ошибки во время сеансов отладки.

Ответ 1

Да, это сработает. Ruby ищет только разрывы строк.

Но так как читаемость кода также очень важна, я бы сказал, что вы должны позаботиться о пробеле, если только ради этого.

Ответ 2

Отступы (обычно) стилистический выбор

В Ruby отступы сами по себе не актуальны, хотя расположение строк и других пробелов может вызывать неоднозначность для синтаксического анализатора или заставлять его рассматривать определенные вещи как отдельные выражения, когда вы не имели для них значения. Здесь - документы и многострочные строки - также области, в которых будет иметь значение отступ.

Во всех случаях реальный вопрос: "Что видит парсер?" В вашем примере он должен быть функционально эквивалентен правильно выровненному коду. Однако, если вы действительно хотите узнать, что происходит под капотом, посмотрите на Ruby модуль Ripper, чтобы увидеть, как ваш код фактически разбирается.

Ответ 3

Ruby не является чувствительным к пробелу. Ваш код, хотя и не очень красивый, будет работать.

Однако: http://www.ruby-forum.com/topic/56039

irb(main):001:0> a = ( 4 + 5 )
=> 9
irb(main):002:0> a = ( 4
irb(main):003:1>       + 5 )
=> 5
irb(main):004:0> a = ( 4 +
irb(main):005:1*       5 )
=> 9