官术网_书友最值得收藏!

Chapter 4. To Be or Not To Be – Optionals

As we discussed in Chapter 2, Building Blocks – Variables, Collections, and Flow Control, all variables and constants must always have a value before they are used. This is a great safety feature because it prevents you from creating a scenario where you forget to give a variable an initial value. It may make sense for some number variables, such as the number of sandwiches ordered to start at zero, but it doesn't make sense for all variables. For example, the number of bowling pins standing should start at 10, not zero. In Swift, the compiler forces you to decide what the variable should start at, instead of providing a default value that could be incorrect.

However, there are other scenarios where you will have to represent the complete absence of a value. A great example is if you have a dictionary of word definitions and you try to lookup a word that isn't in the dictionary. Normally, this will return a String, so you could potentially return an empty String, but what if you also need to represent the idea that a word exists without a definition? Also, for another programmer who is using your dictionary, it will not be immediately obvious what will happen when they look up a word that doesn't exist. To satisfy this need to represent the absence of a value, Swift has a special type called an optional.

In this chapter, we will cover the following topics:

  • Defining an optional
  • Unwrapping an optional
  • Optional chaining
  • Implicitly unwrapped optionals
  • Debugging optionals
  • The underlying implementation
主站蜘蛛池模板: 英超| 辽阳县| 昂仁县| 水富县| 梅州市| 庐江县| 定襄县| 阳春市| 南陵县| 苍溪县| 克什克腾旗| 渭源县| 陆丰市| 淳化县| 白城市| 浦县| 繁峙县| 郎溪县| 溆浦县| 绥江县| 板桥市| 仙游县| 安徽省| 诏安县| 德化县| 大冶市| 界首市| 谷城县| 浑源县| 安康市| 都安| 澄城县| 射阳县| 高尔夫| 若尔盖县| 湖南省| 梓潼县| 台安县| 南木林县| 宁明县| 高淳县|