Ответ
Оператор — это специальный символ или ключевое слово, которое выполняет операцию над одним или несколькими операндами (значениями, переменными, константами, выражениями).
Классификация операторов в Swift (и большинстве языков):
-
Унарные — работают с одним операндом (стоят до или после).
- Логическое НЕ:
!isActive - Унарный минус:
-number - Инкремент/декремент (в Swift нет
++,--, но есть+=1).
- Логическое НЕ:
-
Бинарные — работают с двумя операндами (самые распространенные).
- Арифметические:
+,-,*,/,%(остаток).let area = width * height - Операторы присваивания:
=,+=,-=,*=,/=.counter += 1 // Эквивалентно counter = counter + 1 - Операторы сравнения:
==,!=,>,<,>=,<=.let isEqual = (a == b) - Логические:
&&(И),||(ИЛИ).if isReady && !isError { ... }
- Арифметические:
-
Тернарный условный оператор — работает с тремя операндами.
let status = score >= 60 ? "Passed" : "Failed" // Если условие (score >= 60) истинно, вернет "Passed", иначе — "Failed". -
Специальные операторы Swift:
- Оператор объединения по nil (Nil-Coalescing):
??let username = inputName ?? "Guest" // Если inputName nil, использует "Guest" - Операторы диапазона:
...(замкнутый),..<(полуоткрытый).for i in 1...5 { } // Включает 5 for i in 1..<5 { } // Не включает 5
- Оператор объединения по nil (Nil-Coalescing):
Важно: В Swift многие операторы можно перегружать (определять свою логику для пользовательских типов) и даже создавать новые кастомные операторы.
Ответ 18+ 🔞
Давай разберём эту всю хуйню про операторы, чтобы у тебя в голове не было каши, как в борще после пьянки.
Представь, что оператор — это такой маленький работяга-гномик на стройке твоего кода. У него есть чёткая задача: взять один, два, а то и три кирпичика (это операнды) и что-то с ними сделать — склеить, сравнить, переложить. И у каждого гномика своё имя и своя специализация.
Первая бригада — одиночки (Унарные). Эти ребята работают в гордом одиночестве, но зато с размахом. Подходят к одному кирпичу и либо меняют его суть на противоположную, либо ставят на него свой штамп.
!isReady— Гномик «Восклицательный» подходит к флажкуisReadyи орет: «Да не готов ты, блядь!» — превращаетtrueвfalse.-temperature— Гномик «Минус» говорит: «Холодно, сука!» — и делает число отрицательным.
Вторая бригада — парные (Бинарные). Самые распространённые работяги. Берут два кирпича и вытворяют магию.
- *Арифметики (
+,-, `,/,%):** Тут всё просто, как два пальца об асфальт. Складывают, вычитают, умножают. Особняком стоит%— гномик «Остаток». Он смотрит, сколько не поделится ровненько, и выплевывает этот несчастный остаток.11 % 3` даст 2, потому что 11 на 3 делится три раза (9), и 2 лишних остаётся. Пиздец как просто.let площадьКомнаты = ширина * высота // Гномик «Умножить» сделал своё чёрное дело. - Надсмотрщики (
=,+=,-=): Эти не производят, а приказывают. Гномик=— самый главный деспот. Берёт значение справа и впендюривает его в переменную слева. А его братва (+=,-=) — хитрые ублюдки.counter += 1— это они сначала складываютcounterи1, а потом результат запихивают обратно вcounter. Ленивые, блядь, в одну строку упаковали. - Следователи (
==,!=,>,<): Их работа — сравнивать и доносить. Два кирпича на вход —trueилиfalseна выход.a == b— гномик «Равно» придирчиво сравнивает и докладывает: «Одинаковые, ёпта!» или «Не, разные, нахуй!». - Логики (
&&,||): Принимают только булевы значения (true/false) и выносят вердикт.&&(И) — блюститель порядка: «Всё должно бытьtrue, иначе нихуя!».||(ИЛИ) — более демократичный: «Хотя бы одинtrue— и ладно, проходи».
Третий тип — трёхголовый змей (Тернарный). Единственный такой, ебать его в сраку. Работает по схеме «Вопрос → Ответ1 : Ответ2».
let статус = баллы >= 60 ? "Сдал" : "Отчислен"
Читается так: «Баллы больше или равно 60? Если да — «Сдал», если нет — «Отчислен». Весь смысл в том, чтобы в одну строчку впихнуть маленькое if-else. Удобно, но если переборщить, код читается, как шифровка из ада.
А теперь спецназ от Swift — местные крутые пацаны.
??(Оператор объединения по nil): Спасатель. Смотрит на значение слева. Если там неnil— берёт его. Еслиnil— плюёт на это дело и берёт значение справа по умолчанию.let имяПользователя = введённоеИмя ?? "Гость" // Перевод: «ВведённоеИмя» есть? Нет? Ну и хуй с ним, пусть будет «Гость»....и..<(Операторы диапазона): Гномики-строители заборчиков. Говорят, откуда и докуда идти.for i in 1...5 { } // Беги от 1 ДО 5, ВКЛЮЧАЯ эту самую пятёрку. Забор с двумя столбами. for i in 1..<5 { } // Беги от 1 ДО 5, НЕ ВКЛЮЧАЯ её. Столб в конце — хуй с горы, не наш.
И самое охуительное — в Swift этих гномиков можно не только нанимать (перегружать), давая им новые инструкции для твоих типов, но и создавать своих, с блэкджеком и шлюхами! Представь, ты пишешь a ♥ b, и он делает что-то на твой выбор. Пиздец, да?
Короче, операторы — это просто инструменты. Главное — не пытаться забивать гвозди оператором деления, а то получишь Infinity и боль.