Re[2]: Синтаксис объявления переменных
От: alexzzzz  
Дата: 23.04.21 13:04
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>И еще лишний символ :, код аж на целую букву длиннее.


Не просто лишний, но ещё и набирается с шифтом
Re: Синтаксис объявления переменных
От: MaxxK  
Дата: 23.04.21 20:27
Оценка: 8 (2)
Мне кажется, тут стоит посмотреть с позиций эргономики чтения кода. Особенно для языков с длинными и сложными именами типов, типа C++:

да::когда<уже::наконец, этот, тип<закончится>> x = create_some_object();

let x: тут::Неинтересно<Можно, Пропустить<до::ЗнакаРавенства>> = create_some_object();


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


Второй момент, который актуален для TypeScript и Python: типы-суффиксы проще дописать туда, где их ранее не предполагалось:

def function(x, y: Y):
Re[2]: Синтаксис объявления переменных
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 24.04.21 16:57
Оценка:
Здравствуйте, elmal, Вы писали:

XC>>Все-же интересно, какие преимущества и недостатки есть у обоих способов объявления?

E>Собственно в последнее время статически типизированные языки предпочитают тип выводить из того, что стоит после присваивания, а переменные и константы объявлять как var и val соответственно.

Потыкал палочкой котлин, там как раз var и val. Повбывав бы. Визуально практически не отличимы. Может, конечно, это ни для кого не проблема, только у меня плюсовые комплексы. Но мне было бы гораздо проще код читать, если бы использовалось const, например.

Хотя, если var и val — то из константы переделать в переменную быстрее. Нужно ли оно такое — хз
Маньяк Робокряк колесит по городу
Re[2]: Синтаксис объявления переменных
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 24.04.21 17:05
Оценка:
Здравствуйте, MaxxK, Вы писали:

MK>Мне кажется, тут стоит посмотреть с позиций эргономики чтения кода. Особенно для языков с длинными и сложными именами типов, типа C++:


MK>
MK>да::когда<уже::наконец, этот, тип<закончится>> x = create_some_object();
MK>

MK>
MK>let x: тут::Неинтересно<Можно, Пропустить<до::ЗнакаРавенства>> = create_some_object();
MK>


Есть auto. Довольно удобно.

Правда, иногда, когда много auto, начинаешь забывать, какого типа у тебя в итоге переменная. А если это чужой код, то ещё хуже. Поэтому я авто-ми не особо пользуюсь, хотя в твоём примере auto как раз в тему — тип скорее всего можно понять из имени функции:

[ccode]
auto x = create_some_vector_of_set_of_strings();
MK>[/rust]
Маньяк Робокряк колесит по городу
Re[3]: Синтаксис объявления переменных
От: elmal  
Дата: 24.04.21 17:46
Оценка:
Здравствуйте, Marty, Вы писали:

M>Потыкал палочкой котлин, там как раз var и val. Повбывав бы. Визуально практически не отличимы. Может, конечно, это ни для кого не проблема, только у меня плюсовые комплексы. Но мне было бы гораздо проще код читать, если бы использовалось const, например.

Ну, в Ceylon было сделано поинтереснее, по умолчанию было value то есть неизменяемое, а хочешь переменную — фигачишь variable value. Но var и val не напрягает абсолютно, если ты val сделаешь повторное присваивание — тебе IDE ругнется мгновенно. А по умолчанию давно val юзаю. В kotlin сделали 1 в 1 как в scala, не стали сильно париться, как то проблем из этого никаких не замечал.

А именно в плюсах — наоборот переменная по умолчанию, что несколько противоречит современным практикам, и это уже не исправить.
Re[3]: Синтаксис объявления переменных
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 25.04.21 19:39
Оценка:
Здравствуйте, Marty, Вы писали:

M>Потыкал палочкой котлин, там как раз var и val. Повбывав бы. Визуально практически не отличимы. Может, конечно, это ни для кого не проблема, только у меня плюсовые комплексы. Но мне было бы гораздо проще код читать, если бы использовалось const, например.


Нам-то ещё ничего, а вот китайцам-японцам экзистенциальный ужас — им надо учиться произносить это по-разному. Была куча других вариантов, но выбрали такое...

M>Хотя, если var и val — то из константы переделать в переменную быстрее. Нужно ли оно такое — хз


Сокращение до одного символа менять — точно не нужно
The God is real, unless declared integer.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.