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

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
主站蜘蛛池模板: 杂多县| 曲靖市| 高州市| 张家口市| 四会市| 名山县| 尼勒克县| 巢湖市| 常熟市| 弋阳县| 临沭县| 庄河市| 平和县| 庆元县| 句容市| 达拉特旗| 乌审旗| 凉山| 乃东县| 长沙县| 吕梁市| 马关县| 都江堰市| 鹤岗市| 教育| 金阳县| 湖州市| 景宁| 琼海市| 方山县| 亳州市| 宜良县| 双城市| 普安县| 桦甸市| 陆川县| 屏南县| 屯留县| 永平县| 湖口县| 长泰县|