Мне кажется, тут стоит посмотреть с позиций эргономики чтения кода. Особенно для языков с длинными и сложными именами типов, типа C++:
да::когда<уже::наконец, этот, тип<закончится>> x = create_some_object();
let x: тут::Неинтересно<Можно, Пропустить<до::ЗнакаРавенства>> = create_some_object();
Во втором случае, мне кажется, проще выловить имя переменной и пропустить тип, пока он не потребуется.
И двоеточие тоже полезный маркер, глаз его быстро находит.
Второй момент, который актуален для TypeScript и Python: типы-суффиксы проще дописать туда, где их ранее не предполагалось:
Здравствуйте, elmal, Вы писали:
XC>>Все-же интересно, какие преимущества и недостатки есть у обоих способов объявления? E>Собственно в последнее время статически типизированные языки предпочитают тип выводить из того, что стоит после присваивания, а переменные и константы объявлять как var и val соответственно.
Потыкал палочкой котлин, там как раз var и val. Повбывав бы. Визуально практически не отличимы. Может, конечно, это ни для кого не проблема, только у меня плюсовые комплексы. Но мне было бы гораздо проще код читать, если бы использовалось const, например.
Хотя, если var и val — то из константы переделать в переменную быстрее. Нужно ли оно такое — хз
Здравствуйте, MaxxK, Вы писали:
MK>Мне кажется, тут стоит посмотреть с позиций эргономики чтения кода. Особенно для языков с длинными и сложными именами типов, типа C++:
MK>
MK>да::когда<уже::наконец, этот, тип<закончится>> x = create_some_object();
MK>
Правда, иногда, когда много auto, начинаешь забывать, какого типа у тебя в итоге переменная. А если это чужой код, то ещё хуже. Поэтому я авто-ми не особо пользуюсь, хотя в твоём примере auto как раз в тему — тип скорее всего можно понять из имени функции:
[ccode]
auto x = create_some_vector_of_set_of_strings(); MK>[/rust]
Здравствуйте, Marty, Вы писали:
M>Потыкал палочкой котлин, там как раз var и val. Повбывав бы. Визуально практически не отличимы. Может, конечно, это ни для кого не проблема, только у меня плюсовые комплексы. Но мне было бы гораздо проще код читать, если бы использовалось const, например.
Ну, в Ceylon было сделано поинтереснее, по умолчанию было value то есть неизменяемое, а хочешь переменную — фигачишь variable value. Но var и val не напрягает абсолютно, если ты val сделаешь повторное присваивание — тебе IDE ругнется мгновенно. А по умолчанию давно val юзаю. В kotlin сделали 1 в 1 как в scala, не стали сильно париться, как то проблем из этого никаких не замечал.
А именно в плюсах — наоборот переменная по умолчанию, что несколько противоречит современным практикам, и это уже не исправить.
Здравствуйте, Marty, Вы писали:
M>Потыкал палочкой котлин, там как раз var и val. Повбывав бы. Визуально практически не отличимы. Может, конечно, это ни для кого не проблема, только у меня плюсовые комплексы. Но мне было бы гораздо проще код читать, если бы использовалось const, например.
Нам-то ещё ничего, а вот китайцам-японцам экзистенциальный ужас — им надо учиться произносить это по-разному. Была куча других вариантов, но выбрали такое...
M>Хотя, если var и val — то из константы переделать в переменную быстрее. Нужно ли оно такое — хз
Сокращение до одного символа менять — точно не нужно