The optional (Optional) type of Swift, which is used to handle cases where values are missing. Optional means “there is a value, and it is equal to x” or “there is no value”.
Swfit language definition suffix? As an abbreviation for named type Optional, in other words, the following two declarations are equal:
var optionalInteger: Int? var optionalInteger: Optional In both cases, the variable optionalInteger is an optional integer type. Note that in the type and ? with no space between.
Optional is an enumeration with two cases, None and Some(T) used to indicate that there may or may not be a value Any type can be explicitly declared (or implicitly converted) as an optional type. When declaring an optional type, be sure to give it in parentheses. An appropriate range of operators. For example, declare an array of optional integers, which should be written as (Int [])? write Int[] ? Will make a mistake.
When you declare an optional variable or optional property without providingan initial value, its value defaults to nil.
Optional compliance with the LogicValue protocol, so it can appear in a Boolean environment. In this case, if the optional type T? Contains any value of type T (that is, its value is Optional.Some(T) this optional type is equal to true instead of being regarded as false .
If an instance of an optional type contains a value, you can use the suffix operator! To access this value, as follows:
optionalInteger = 42 optionalInteger! // 42
Use operators! To get an optional variable with a value of nil will have a run-time error.
You can optionally perform operations on optional expressions with optional links and optional bindings. If the value is nil no action will be performed, and no run error will be reported
Let’s take a closer look at the following examples to understand the application of optional types in Swift:
import Cocoa var myString:String? = nil if myString != nil { print(myString) }else{ print("The string is nil") } The execution results of the above procedures are as follows:
The string is nil
The optional type is similar to the pointer in Objective-C nil value, but nil useful only for classes (class), while optional types are available for all types and are more secure.
9.6.1. Forced parsing #
When you are sure that the optional type does contain a value, you can get the value by adding an exclamation point (!) after the optional name. The exclamation point says, “I know this optional value, please use it.” This is called forced parsing of optional values (forced unwrapping).
Examples are as follows:
import Cocoa var myString:String? myString = "Hello, Swift!" if myString != nil { print(myString) }else{ print("myString value is nil") } The execution results of the above procedures are as follows:
Optional("Hello, Swift!")
Force the resolution of optional values, using an exclamation point (!):
import Cocoa var myString:String? myString = "Hello, Swift!" if myString != nil { // Forced parsing print( myString! ) }else{ print("myString value is nil") } The execution results of the above procedures are as follows:
Hello, Swift!
Note: use th ! to get an optional value that does not exist will cause a run-time error. Use ! before you force the parsing value, be sure to optionally include a non- nil the value.
9.6.2. Automatic parsing #
You can replace the question mark (?) with an exclamation point (!) when declaring optional variables. In this way, the optional variable does not need to add an exclamation point (!) to get the value, it will be parsed automatically.
Examples are as follows:
import Cocoa var myString:String! myString = "Hello, Swift!" if myString != nil { print(myString) }else{ print("myString value is nil") } The execution results of the above procedures are as follows:
Hello, Swift!
9.6.3. Optional binding #
Use optional bindings (optional binding) to determine whether the optional type contains a value, and if so, assign the value to a temporary constant or variable. Optional bindings can be used in the if and while statement to determine the value of the optional type and assign the value to a constant or variable.
Write an optional binding in the if statement as follows:
if let constantName = someOptional { statements }
Let’s look at the next example of a simple optional binding:
import Cocoa var myString:String? myString = "Hello, Swift!" if let yourString = myString { print("Your string value is - \(yourString)") }else{ print("Your string value is") } The execution results of the above procedures are as follows:
Your string value is - Hello, Swift!
-
1. Angularjs2
8
-
1. SVG tutorial
19
-
1. Memcached
20
-
1. C# tutorial
61
-
1. Sqlite
47
-
2. Go
43
-
2. Docker
59
-
2. Vue3
19
-
2. Servlet
21
-
3. React
23
-
3. SOAP tutorial
10
-
3. Android
18
-
3. Mongodb
44
-
3. Kotlin
18
-
4. Lua
31
-
4. MySQL tutorial
35
-
4. Appml
12
-
5. Perl
45
-
5. Postgresql
41
-
web
15
-
5. Web Services tutorial
6
-
6. Ruby
42
-
6. Design-pattern
35
-
7. Django
18
-
7. Rust
22
-
6. WSDL tutorial
8
-
8. Foundation
39
-
9. Ios
43
-
8. Css3
26
-
9. Swift
44
-
9.26. Swift array
-
9.40. Swift automatic reference count (ARC)
-
9.14. Swift nested if statement
-
9.45. Swift access control
-
9.29. Swift closure
-
9.32. Swift class
-
9.13. Swift if…else if…else statement
-
9.1. Swift tutorial
-
9.42. Swift extension
-
9.28. Swift function
-
11. HTML tutorial-(HTML5 Standard)
54
-
12. Http
6
-
13. Regex
6
-
14. Regexp
8
《地理信息系统原理、技术与方法》
97
最近几年来,地理信息系统无论是在理论上还是应用上都处在一个飞速发展的阶段。 GIS被应用于多个领域的建模和决策支持,如城市管理、区划、环境整治等等,地理信息成为信息时代重要的组成部分之一; “数字地球”概念的提出,更进一步推动了作为其技术支撑的GIS的发展。 与此同时,一些学者致力于相关的理论研究,如空间感知、空间数据误差、空间关系的形式化等等。 这恰好说明了地理信息系统作为应用技术和学科的两个方面,并且这两个方面构成了相互促进的发展过程。
-
1. Introduction to geographic information system
6
-
2. From the Real World to the Bit World
3
-
3. Spatial Data Model
7
-
4. 空间参照系统和 地图投影
5
-
5. Data in GIS
3
-
6. Spatial data acquisition
2
-
7. Spatial Data Management
6
-
8. Spatial analysis
8
-
9. 数字地形模型( DTM )与地形分析
5
-
10. 空间建模与 空间决策支持
6
-
11. Spatial data representation and map making
6
-
12. 3S Integration Technology
5
-
13. 网络地理信息系统
3
-
14. Examples of Geographic Information System Application
8
-
15. Organization and Management of Geographic Information System Application Projects
9
-
16. Geographic Information system Software Engineering Technology
6
-
17. Geographic Information System Standards
3
-
18. Geographic Information System and Society
3
-
19. Earth Information Science and Digital Earth
3