#scala
#scala
Вопрос:
Задан объект MyObject, у которого есть метод getSomething, который принимает строковый параметр и возвращает строку
Эквивалентны ли # 1 и # 2?
-
val foo = myOjbect.getSomething("foo")
-
val foo = myOjbect getSomething "foo"
И являются ли они приемлемыми / предпочтительными по сравнению с другими? Когда бы вы использовали 1 против 2 и наоборот?
Ответ №1:
Они строго эквивалентны.
Что касается вашего второго вопроса, Stack Overflow на самом деле не предназначен для определения того, что является приемлемым или предпочтительным. Тем не менее, вы можете обратиться к документации scala по вызову метода, в которой говорится об этом:
Scala имеет специальный синтаксис без знаков препинания для вызова методов, которые принимают один аргумент. Многие программисты Scala используют это обозначение для методов с символическими именами:
// recommended a b // legal, but less readable a b // legal, but definitely strange a. (b)
но избегайте этого почти для всех методов с алфавитными именами:
// recommended names.mkString(",") // also sometimes seen; controversial names mkString ","
Комментарии:
1. документация, на которую даны ссылки, и приведенные примеры, безусловно, помогают мне разобраться в этом. Спасибо.
Ответ №2:
- Да, они идентичны.
- Нет консенсуса (я не думаю, что его возможно достичь), какая форма предпочтительнее (здесь такие вопросы являются оффтопическими).
Ответ №3:
Да, они идентичны. В основном я использую 2-ю версию при разработке тестов, таких как:
result mustEqual "Hello"