文章只是根据自身情况,记录swift语言和其他语言的区别,请勿对号入座,请根据自身情况选择性学习:
一、类型注解
注意:类型注解作为一个需要了解的知识点,不做深入研究,因为在项目实操中很少需要写类型注解;理由是:Swift 可以推断出常量或者变量的类型
当你声明常量或者变量的时候可以加上类型注解(type annotation),说明常量或者变量中要存储的值的类型。如果要添加类型注解,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。
var x:String
声明中的冒号代表着“是...类型”,所以这行代码可以被理解为:
“声明一个类型为 String
,名字为 x 的变量。”
“类型为 String
”的意思是“可以存储任意 String
类型的值。”
x 变量现在可以被设置成任意字符串:
x = "高效码农"
print(x)
完整代码:
var x:String
x = "高效码农"
print(x)
你可以在一行中定义多个同样类型的变量,用逗号分割,并在最后一个变量名之后添加类型注解:
var red, green, blue: Double
二、整数
Swift提供的整数类型有:Int
、Int8
、Int16
、Int32
、Int64
、UInt
、UInt8
、UInt16
、UInt32
、UInt64
带U的为无符号整数;
除非你需要特定长度的整数,一般来说使用 Int
就够了。这可以提高代码一致性和可复用性。即使是在32位平台上,Int
可以存储的整数范围也可以达到 -2,147,483,648
~ 2,147,483,647
,大多数时候这已经足够大了。
三、类型别名
类型别名(type aliases)就是给现有类型定义另一个名字。你可以使用 typealias
关键字来定义类型别名。
typealias exmple = UInt32
var typeExmple = exmple.max
本例中,exmple
被定义为 UInt32
的一个别名。因为它是别名,exmple.min
实际上是 UInt32.max
,所以会给 typeExmple
赋一个初值 4294967295
。
项目实操中没有用到过这个特性,在其他语言实战中也没有遇到有类似需求的场景,不知道干啥用的;
四、可选类型
声明一个可选常量或者变量
var surveyAnswer: String?
print(surveyAnswer)
// surveyAnswer 被自动设置为 nil
Swift 的nil
和 Objective-C 中的nil
并不一样。在 Objective-C 中,nil
是一个指向不存在对象的指针。在 Swift 中,nil
不是指针——它是一个确定的值,用来表示值缺失。任何类型的可选状态都可以被设置为nil
,不只是对象类型。
五、可选绑定
在Swift中,返回值或者数据类型后面加 ?表示可选类型,值可以为空,但是后面加 !的话,表示告诉编译器,这个是一定有值的,相当于强制解析,如果没有值的话,就会崩。这是前提。实际应用举例如下:
let url = URL.init(string: "https://www.xugj520.cn")
//正常写惯了OC的话,为了保证程序的稳定性,强制解析前一定会加判断,通常会这么写
if url != nil {
let request = URLRequest(url: url!)
}
//但是在工程中会有很多很多的可选类型,如果每个都这么写的话,看起来肯定不太优雅,所以Swift推出了一个可选绑定的写法
if let url = url {
let request = URLRequest(url: url)
评论已关闭