Мое понимание до сих пор. Если вы определяете необязательную переменную без назначения каких-либо значений, компилятор автоматически назначит nil
Фрагменты кода:
A:
var someOptional : Int? //Change to `let` to trigger error
var aDefaultValue = 42
var theAnswer = someOptional ?? aDefaultValue
Фрагмент кода выше работает отлично, однако, когда я изменил переменную someOptional
на константу, компилятор закричал ошибку (см. прилагаемый рисунок ниже)
B:
Затем я попробовал аналогичные коды до проблемы.
var someOptional : Int?
print(someOptional)
Тем не менее, он отлично работает с переменной, в то время как с постоянным типом.
Вывод:
Если вы определяете константу необязательно, вам нужно назначить нуль явно, если вы имеете в виду это. Поскольку это выглядит бесполезным (зачем вам нужен постоянный параметр с назначенным с помощью nil
), если компилятор сделал это для вас автоматически, он может ввести ошибку.
Вопрос:
Почему компилятор предполагает nil
для var
объявленных опций, но не для let
объявленных опций?