Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Creating optional variables Создание дополнительных переменных

Creating loops in Swift | Creating loops in Swift Создание петель в Swift | Defining functions | Defining functions Определение функции | Creating and using arrays | Creating and using arrays Создание и использование массивов | Using dictionaries | Using dictionaries Использование словарей | Understanding tuples | Understanding tuples Понимание кортежи |


Читайте также:
  1. Creating a Bandpass Filter
  2. Creating a New Simulation
  3. Creating a Play List by Recording a Live Beat Arrangement
  4. Creating and using arrays
  5. Creating and using arrays Создание и использование массивов
  6. Creating computed properties
  7. Creating constants

- Кортежи не только новая вещь у Свифта. Другая концепция не нашла на многих языках, в том числе С и Objective-C, является то, что дополнительными опциями. Дополнительное оборудование опишем ситуацию, когда иногда мы иметь значение, а иногда и мы не знаем. Ладно, дайте мне распаковать это заявление, потому что есть некоторые тонкости к этому. Если я заявляю, это стандартная переменная у Свифта, без его инициализации, не давая это значение, то это нормально; Я могу сделать это. Так вот, я говорю, что я хочу целочисленную переменную под названием температура.

Но это должно быть присвоено значение, прежде чем мы ее используем. Swift не по умолчанию целочисленную переменную к нулю или по умолчанию строку в пустую строку, так что некоторые другие языки делать. И Swift будет применять тот факт, что нормальная переменная должна быть инициализирована, прежде чем мы попытаемся использовать его. Если я пытаюсь сделать любой вид работы на этом, добавляя к нему, печати, я иду, чтобы получить ошибку, говорящую мне, что это не инициализирован, и это просто не пускают. Итак, мы получили этот выскакивают над на стороне, переменная «температура» используется до инициализации.

Мы не можем сделать это в Свифт. Ладно, вы думаете, давайте просто идти вперед и дать этому основной начальное значение. Я мог бы просто идти вперед здесь и дать, что начальное значение нуля. Я даже не нужно будет аннотации типа в этой точке. И, что бы сделать об ошибках. Но это плохая идея для нас в данном случае, и вот почему: давайте представим, что значение этой переменной температуры предназначен для позвонив по телефону некоторую функцию. Это действительно не имеет значения, что эта функция есть, но, скажем, это то, что вышел в Интернет и извлекать текущую температуру и обновили эту переменную.

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

Так что я собираюсь пойти сюда и удалить этот начальную установку к нулю, так что привезет ошибку сюда. Так что ситуация, что мы имеем, мы хотим использовать УСТРОЙСТВА. Дополнительное оборудование позволяют нам сказать, что для любой конкретной переменной, мы можем иметь значение, и если мы это сделаем, это будет определенного типа. Это будет целое число или строка или Boolean. Но мы не может иметь никакого значения - не ноль, а не пустую строку, а не ложное... ничего, или ноль, отсутствие значения. Как мы уже видели, по умолчанию, переменные не разрешено иметь нулевые значения; они не могут быть лишены значения, прежде чем они используются.

По умолчанию, они должны быть инициализированы. Таким образом, вы должны выбрать выбрать в этих дополнительных опций, чтобы поддержать это на переменном-на-переменная основе. Так что с этим, например, поддержать эту идею, что температура может быть ноль, я бы отметить эту переменную температуре не просто как Int, но по желанию Int. И я могу это сделать, добавив знак вопроса сразу после типа, даже не пространство между ними. Так Int? вот. И заметьте, что ошибка сразу ушел. Swift понимает, что эта переменная может быть либо целым или не может быть нулевой, ничего.

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

Так что мне пришлось это сообщение, но, скажем, что, прежде чем я пишу это сообщение, я должен проверить, является ли это делает или не имеет значения. Так что я могу только спросить, если температура не равна нулю, то мы сделаем печатать строку, и мы должны иметь какой-то температуре, а затем закройте это... (щелчок клавиатуры), и мы хорошо. У нас нет ошибки больше. Сказав, что, прямо сейчас мы бы никогда не ударил эту линию, потому что площадка может сказать, что значение температуры равна нулю. Итак, позвольте мне подделка это на самом деле, имеющий значение, просто чтобы проверить это.

Температура равна 65. Теперь мы должны рассчитывать, что температура не равна нулю, мы должны ударить этого Printline заявление. И мы делаем. То, что мы сюда попасть ", температура не является обязательным (65) градусов." Я получаю дополнительный текст здесь. Потому что переменная температура была его тип изменяется от целого числа Необязательное целое, если я просто это основной код выплевывая все значение температуры, оно будет завернутый в том, что необязательный текст, потому что это не простой Int, это дополнительный Int.

Так что, если я не хочу, что дополнительный необязательный текст, что мне нужно сделать, это, извлечь выгоду из этого. Мне нужно что-то добавить, чтобы сказать, что я знаю, что это необязательно переменная, но я уверен, что имеет значение, и я просто хочу, чтобы значение. А для этого, я добавляю восклицательный знак сразу после использования имени переменной, так не только температура, но температура!. Это, опять же, в нашем обратной косой пары скобок, поэтому он использует интерполяции строк, чтобы вытащить эту величину из.

То, что мы делаем здесь, на самом деле называется вынуждены раскрутки. Мы заставляя что дополнительный переменную, говоря, что мы знаем, что это имеет значение и потянув это значение из. Но мы только когда-либо это сделать, если мы положительным, если мы уверены, что эта дополнительная действительно имеет значение. Если вы используете восклицательный знак принудительно развернуть дополнительный переменную, которая на самом деле отсутствует, вы получите ошибку времени выполнения. Но, конечно, мы протестировали для этого не будучи нулю, так что мы хорошо. Но это не только ваш собственный код, что вам нужно УСТРОЙСТВА для.

Мы используем УСТРОЙСТВА во многих местах в Свифт. Вот один из примеров: Мы видели этот словарь примере А пару раз. Несколько пар ключ / значение. Теперь, позже в своем коде, что я хочу быть в состоянии сделать это, потяните какую-то ценность из этого словаря. Результат Var равно, и я использую NV как способ попробовать и извлекать информацию из.Дело в том, эта переменная результат, это новая переменная, что я создания, будет автоматически набран так, как опция, потому что это ключ может или не может существовать в словаре.

Так что, если он не существует, мы хотели бы любой результат будет нулевой, и что на самом деле то, что мы получаем, потому что NV не существует в словаре в качестве ключа.Площадка могу сказать, нет ключа NV в словаре. Опять же, что мы можем сделать, когда речь идет дополнительных значений, бороться с ними в два этапа. Мы сначала попробовать и получить значение, а затем мы постараемся тест, чтобы увидеть, если он есть, или, если это не так, равен нулю. Мы будем иметь дело с ним. Однако, есть и другой вариант. Мы можем вид совместить эти две вещи в один шаг, так дело только со значениями, если они существуют.

Это называется дополнительный обязательный характер. Теперь, это может выглядеть немного странно в первый раз вы его видите. Позвольте мне просто комментарий, что старый необязательно. Мы все еще работаем со словарем здесь. Собираемся добавить немного кода здесь. И это странный часть. Мы используем», если позволить». Ну, на самом деле, то, что мы здесь делаем, это пытаемся сказать, мы создаем постоянной здесь. Пусть результат равен состояния и использования NV, чтобы добраться до этого ключа. Но вложения, что внутри, если заявление будет пытаться и делать то, что называется дополнительный обязательный характер.

Так мы пытаемся извлечь значение из словаря и положил его в постоянном называется результат. И имя не важно. Это зависит от нас. Так что, если ключевые матчи, то эта константа будет иметь значение. Это если заявление будет рассматриваться как истинное и мы будем опускать и распечатать которые заявляют о том привести из. Но, с другой стороны, если ничего не было найдено для этого ключа, мы только собираемся сказать, нет, мы не имеем ни одного матча; В самом деле, эта переменная результат, а точнее, в результате постоянной, не существует.

У нас не будет ничего, что мы могли бы написать, даже если бы мы хотели. Прямо сейчас, потому что площадка понимает код, который я написал, мы получаем "Нет соответствующих ключ не найден", потому что он знает, что NV не существует. Но, если я изменю, что с помощью ключа, на самом деле существует, мы должны увидеть Printline заявление будет на самом деле выписывают, "имя штатом является Калифорния." Теперь, одно из преимуществ делает этот дополнительный вариант переплета здесь, используя, если позволить, это то, что мы не должны насильно развернуть результат, который мы вернемся. Мы не должны использовать эту восклицательный знак после него, потому что он уже понял, что должен быть значение в этом результате постоянной, потому что это считается истинным.

В противном случае, он бы даже не существует. Так что это опциями. Это все об этих вопросительных знаков и восклицательных знаков, которые следуют переменную. И мы будем видеть больше из них, как мы идем вперед. Одна последняя вещь, чтобы отметить здесь: если вы пользователь Objective-C, знают, что опциями в Swift не то же самое, с нулевыми указателями в Objective-C. В Свифт, они гораздо более широкое распространение, гораздо более распространенным явлением. И, в то время как в Objective-C, ноль указатели были использованы для представления на несуществующий объект, в Swift, любой вид стоимости может быть определена как дополнительный, а не только объекты.

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

 


Дата добавления: 2015-08-20; просмотров: 137 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Creating optional variables| Defining and using enumerations

mybiblioteka.su - 2015-2024 год. (0.008 сек.)