У вас нет.
Это языковая функция для предотвращения стандартного нежелательного побочного эффекта присваивания, возвращающего значение, как , описанного в книге Swift :
В отличие от оператора присваивания в C и Objective-C, оператор присваивания в Swift сам не возвращает значение. Следующая инструкция недействительна:
if x = y { // this is not valid, because x = y does not return a value }
Эта функция запрещает использование оператора присваивания (
blockquote>=
) случайно, когда на самом деле предназначен оператор, равный оператору (==
). Еслиx = y
недействителен, Swift помогает избежать таких ошибок в вашем коде.Таким образом, это помогает предотвратить эту чрезвычайно распространенную ошибку. Хотя эту ошибку можно смягчить на других языках, например, используя условия Yoda - дизайнеры Swift, по-видимому, решили, что лучше сделать определенные на уровне языка, которые вы не могли бы снимать себя в ногу. Но это означает, что вы не можете использовать:
blah = blah2 = 3
Если вы отчаянно нуждаетесь в выполнении задания в одной строке, вы можете использовать синтаксис кортежа, но вам все равно придется назначать каждый значение:
(blah, blah2) = (3, 3)
... и я бы не рекомендовал его. Хотя сначала может показаться неудобным, просто набрав все это, это, на мой взгляд, лучший способ:
blah = 3 blah2 = 3