Форум программистов, компьютерный форум CyberForum.ru

Swift

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.62
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
#1

Восклицательный знак в Swift - Swift

24.08.2014, 22:49. Просмотров 2815. Ответов 1
Метки нет (Все метки)

Всем привет!

Начал опыты со Swift, и тут же столкнулся с модификаторами ? и ! (назову их так) при декларации переменных.
С вопросительным знаком понятно - мы указываем, что переменная может или иметь конкретное значение, или быть nil'ом.

А, вот, с восклицательным я запутался.. Читаю и stackoverflow и доки Apple, но, видимо, мой уровень знания английского не дает уловить суть.
Что, в частности, пишет Apple на эту тему:
"..Sometimes it is clear from a program’s structure that an optional will always have a value, after that value is first set."

Мол, переменная, объявленная таким образом, будет всегда иметь значение, после того, как ей в первый раз присвоят что-нибудь.

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

Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2014, 22:49     Восклицательный знак в Swift
Посмотрите здесь:

Сильная связь Swift - Swift
Дорогие форумчане, объясните, пожалуйста, в чем разница между строчками "pers!.apartment = apart" и "pers?.apartment = apart". Единственное...

Swift is open source! - Swift
Всем привет! Примерно час назад Swift выпустили в открытое плавание! :yahoo: https://swift.org/ https://github.com/apple/ Что бы...

Мутирование массива - Swift - Swift
Доброго времени суток! Столкнулся с проблемой, которую уже 3й день не могу решить: Я отправляю запрос на сервер, и получаю данные,...

Swift JSON Parsing - Swift
Добрый день! Пытаюсь пропарсить JSON, который я получаю по URL запросу. Проблем не возникало пока JSON не имел многоуровневую...

Input/output в swift - Swift
Начал изучать swift и столкнулся с проблемой ввода значений с клавиатуры. Много чего облазил, но решение нашёл пока только одно, описать...

Конвертер из swift в ObjC - Swift
Уважаемые коллеги Не может ли кто-то из вас подсказать, существует ли "в природе" опенсорсный конвертер исходного кода из swift в...

Дружит ли swift с геопозицией? - Swift
Здравствуйте, может кто-то знает, есть ли возможность взаимодействовать с определением геопозиции?

SWIFT 3 и WebSocket в Xcode 8 - Swift
Здравствуйте. Собственно вопрос, есть ли возможность использовать WebSocket в Xcode8 (SWIFT 3). Нативных АПИ не нашел, попробовал...

Swift Казалось бы просто - Swift
Пытаюсь в xcode сделать примитивную игру. Суть в том что бы на экране появлялась сначала 1 кнопка и давалось 2 секунды на нажатие, если...

Как установить Swift? - Swift
Доброго времени суток Простите за дилетантский вопрос. Скажите можно ли программировать на Swift не используя OS Mac? Читал что сейчас...

Как установить swift на windows 8? - Swift
Всем привет, подскажите пожалуйста, как установить swift. ОС виндовс 8. Очень нужно )

Визуальная часть в Xcode with Swift - Swift
подскажите идеи реализации такого таб бара в SWIFT: 1 - что бы были такие вкладки 2 - что бы изображения имели реальный цвет а не цвет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
takaTa
5 / 5 / 1
Регистрация: 14.01.2014
Сообщений: 7
25.08.2014, 11:00     Восклицательный знак в Swift #2
Это так называемый Force Unwrap, то есть если в optional есть какое-то значение, то вы его сразу получите, если нет этого значения, то вы получите runtime error. Таким образом восклицательный знак стоит использовать когда вы на 100% уверены, что там есть значение, если же нет, то используйте безопасные конструкции с if, которые подробно описаны в книжке.
Yandex
Объявления
25.08.2014, 11:00     Восклицательный знак в Swift
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru