Re[6]: Спец. символы (операторы) вместо функций - любите?
От: Alekzander Россия  
Дата: 17.08.24 11:25
Оценка: +1
Здравствуйте, vsb, Вы писали:

vsb>>>На мой взгляд это плохое применение оператора сложения. Из-за него код print("a + b = " + a + b) не будет работать, как ожидается


A>>А что ожидается? Что сложение без скобок будет происходить справа налево?


vsb>Ожидается использование другого оператора для конкатенации строк, у которого приоритет низкий, что позволит писать "a + b = " .. a + b


Как по мне, отдельный оператор это лечение симптомов (потенциальные ошибки при конкатенации), а не болезни (нестрогая типизация ака неявные преобразования типов).

Если a и b строки, приоритет не будет иметь значения.

Если a и b не строки, независимо от того, что это за язык и какая там типизация (статическая или динамическая), print("a + b = " + a + b) должно не компилироваться или кидать исключение. Потому что это не только источник бесплатных ошибок программиста ("не будет работать, как ожидается"), но и способ затруднить локализацию, а ещё это дыра в безопасности (литералы в коде -> нельзя запретить Юникод в сорцах -> BiDi-инъекции).

P.S. Конечно, речь идёт про ЯП общего назначения. Есть ЯП для процессинга текста, там конкатенация — гражданин первого класса среди операций, и под неё выделена аж точка, если правильно помню.
Отредактировано 17.08.2024 11:30 Alekzander . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.