#syntax
#синтаксис
Вопрос:
Мне интересно, почему сокращенные формы операторов присваивания работают только одним способом, это означает добавление значения переменной.
Например. (В Javascript):
x =y x=x y
x-=y x=x-y
x*=y x=x*y
x/=y x=x/y
x%=y x=x%y
Часто я сталкивался с ситуациями, когда мне нужно добавить переменную:
Пример.
x=y x
Предположим, что x и y являются строками, и вы объединяете.
Я хотел бы иметь синтаксис, который позволяет что-то вроде:
x= y
Как я делаю с i или i увеличивающее число.
Есть ли какой-нибудь язык, который поддерживает это?
Ответ №1:
конечно, x=y x — это то же самое, что и y = x
Я озадачен тем, почему вы изучаете новый язык только для того, чтобы сэкономить на 1 символе!
Тем не менее, я бы предложил .prepend()
метод jQuery
Комментарии:
1. Это дает точно такой же результат. Я не уверен, чего вы хотите достичь.
2. Нет — это не одно и то же с точки зрения логики программы, предположим, у вас есть две переменные, одну
var html
из которых вы создаете со сложными функциями иvar title
хотите добавить. Вы не хотите передаватьhtml
title
переменную. Я не хочу изучать язык, основанный на этой детали, мне интересно, есть ли какой-нибудь язык, который поддерживает это. К сожалению, я не могу понизить ваш ответ.3. Ваш отредактированный ответ более полезен, но идея состоит в том, чтобы упростить синтаксис.
4. вы хотите сделать это на стороне сервера или клиента?
5. Сторона не имеет значения. Здесь речь идет о логике синтаксиса.
Ответ №2:
Существуют языки, которые позволяют определять новые операторы и / или перегружать существующие операторы (см. Перегрузка операторов).
Но операторы и их использование должны быть однозначными. В вашем примере x= y
может быть интерпретировано как x=y x
(как вы обозначили), но также как x=( x)
(
как унарная операция, подобная операции отрицания в -1
). Эта двусмысленность может затруднить использование языка, особенно когда программисты хотят сделать свой код коротким и лаконичным. Вот почему в некоторых языках нет синтаксического сахара, такого как операторы увеличения / уменьшения до / после (например, Python).