В Swift, как мне избежать как необязательных, так и нулевых ссылок на объекты?

Причиной необязательности является предотвращение сбоев во время выполнения в результате попадания в переменную, назначенную nil / null / none. Следовательно, переменные не могут быть равны нулю; вместо этого они могут быть упакованы в необязательный тип, представляющий их как Some или None, и развернуты, чтобы получить определенное содержимое Some или nil.

Но если вы развернете их повсюду!или с помощью Implicitly Unwrapped Optionals, вы просто представляете возможность, поскольку вы - несовершенный кодер, аварийных сбоев во время выполнения. Если вы используетеif let чтобы безопасно развернуть их, вы избежите сбоев, но вы застряли в рамкахif let оператор для работы со значением внутри Some, и вам все равно придется обрабатывать потенциальный нулевой регистр. Если вы используете? чтобы временно развернуть для вызова метода, он будет перемотан после завершения, предоставляя беспорядочную возможность многослойного необязательного переноса.

Итак: мне кажется, что нужно избегать необязательных параметров, кроме случаев, когда это необходимо (например, при вызове методов платформы, которые их возвращают). Но если я не использую опциональные функции, это означает, что ссылки на мои объекты должны быть ненулевыми, и я не могу понять, как обрабатывать случаи, когда по тем или иным причинам их не должно быть или нет , значение, назначенное для ссылки на объект.

Мой вопрос: как мне избежать нуля? Кажется, что это требует другого подхода к программированию. (Или я должен просто использовать дополнительные функции, и если это то, что я делаю, то чем это лучше, чем просто иметь нулевые назначения для ссылок на объекты, как в других языках?)

Я знаю, что это потенциально субъективный вопрос, но где еще я должен его задать? Я не пытаюсь троллить или разжигать дебаты, я действительно хотел бы знать, каков правильный подход, когда я пишу больше кода Swift.

Ответы на вопрос(2)

Ваш ответ на вопрос