Понимание методов в Ruby по сравнению с Javascript

1

Недавно я начал изучать Ruby как второй язык программирования, начав с JavaScript пару месяцев назад.

Я заметил в учебниках, что то, что люди называют в Ruby как методы, часто не имеют круглой скобки(), следуя методу, как в Javascript.

Правильно ли, что все методы в JavaScript имеют скобки() и что-либо справа от точки без скобок, является свойством, но в Ruby метод все еще может быть методом, даже без круглых скобок?

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

  • 0
    TL; DR да, методы в Ruby можно вызывать без круглых скобок, тогда как в JavaScript вы должны иметь круглые скобки при вызове метода / функции.
  • 0
    Возможные дубликаты Вы оставляете скобки в Ruby?
Теги:
methods

1 ответ

1

Im ruby, методы определяются следующим образом.

def hello_world
  puts "hello world!"
end

В javascript, как вы знаете, определяется следующим образом:

function helloWorld(){
  console.log("hello world!")
}

В javascript способность передавать функции как обратные вызовы и т.п. Относительно проста.

В приведенной выше функции helloWorld и helloWorld() являются двумя очень разрозненными вещами. Первая - это ссылка на функцию, где вторая является фактическим вызовом.

Это обращается к рубину, где Ruby не имеет понятия функции так же, как javascript, имеет методы. У них есть аналогичная концепция, как ссылочные функции на пути procs и lambdas, но реализация отличается.

Все, что сказать, рубиновые методы называются без круглых скобок, где, как и в JS, они

В рубине скобки являются необязательными

  • 1
    Скобки в рубине не всегда являются необязательными. Если в текущей области существует локальная переменная с тем же именем, скобки обязательны.
  • 0
    Кроме того, всегда можно получить ссылку на функцию с помощью obj.method(:hello_world) который возвращает почти то же самое (связанный метод), что и helloWorld в вашем примере.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню