数据类型与变量
声明变量时可指定它的数据类型。
Int:整数类型
UInt:无符号整型,一般不推荐
浮点数:浮点类型比整数类型表示的范围更大,可以存储比Int类型更大或者更小的数字
Double:表示 64 位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型
Fload:表示 32 位浮点数。精度要求不高的话可以使用此类型
TIP
Double 精确度很高,至少有 15 位数字,而 Float 最少只有 6 位数字。选择哪个类型取决于你的代码需要处理的值的范围
- Bool
布尔常量:true 和 false
- String
"imondo.cn"- Character
字符指单个字母
"C"- Optional
可选类型来处理值可能缺失的情况。可选类型表示有值或没有值。
定义后缀 ? 作为命名类型 Optional 的简写,这两种写法是相等的:
var num: Int?
var num1: Optional<Int>TIP
注意,在类型和 ? 之间没有空格
Optional 是一个含有两种情况的枚举,None 和 Some(T),用来表示可能有或可能没有值。
任何类型都可以明确声明为(或者隐式转换)可选类型。当声明一个可选类型的时候,要确保用括号给 ? 操作符一个合适的范围。例如,声明可选整数数组,应该写成 (Int[])? 写成 Int[]? 会报错。
当你声明一个可选变量或者可选属性的时候没有提供初始值,它的值会默认为 nil。
如果一个可选类型的实例包含一个值,你可以用后缀操作符 ! 来访问这个值:
num = 32
num! // 32请注意:如果使用 ! 访问值为 nil 时,会有运行时错误。
如果值为nil,任何操作都不会执行,也不会有运行报错。
import Cocoa
var str:String? = nil
if str != nil {
print(str)
}else{
print("字符串为 nil")
}执行结果
字符串为 nil- 强制解析:加
!强制解析
import Cocoa
var str:String?
str = "Hello, Swift!"
if str != nil {
// 强制解析
print( str! )
}else{
print("str 值为 nil")
}- 自动解析
import Cocoa
var str:String! // 自动解析
str = "Hello, Swift!"
if str != nil {
print(str)
}else{
print("str 值为 nil")
}- 可选绑定:可选绑定可以用在
if和while语句中来对可选类型的值进行判断并把值赋给一个常量或者变量
import Cocoa
var str:String?
str = "Hello, Swift!"
if let str1 = str {
print("你的字符串值为 - \(str1)")
}else{
print("你的字符串没有值")
}数值范围
| 类型 | 大小(字节) | 区间值 |
|---|---|---|
| Int8 | 1 字节 | -128 到 127 |
| UInt8 | 1 字节 | 0 到 255 |
| Int32 | 4 字节 | -2147483648 到 2147483647 |
| UInt3 | 24 字节 | 0 到 4294967295 |
| Int64 | 8 字节 | -9223372036854775808 到 9223372036854775807 |
| UInt6 | 48 字节 | 0 到 18446744073709551615 |
| Float | 4 字节 | 1.2E-38 到 3.4E+38 (~6 digits) |
| Double | 8 字节 | 2.3E-308 到 1.7E+308 (~15 digits) |
类型别名
类型别名对当前的类型定义了另一个名字,类型别名通过使用 typealias 关键字来定义。
语法格式如下:
typealias newname = type例如以下定义了 Int 的类型别名为 Feet:
typealias Feet = Int现在我们可以通过别名来定义变量
import Cocoa
typealias Feet = Int
var num: Feet = 100
print(num)输出结果仍是:
100类型安全
Swift 是一个类型安全的语言。由于是类型安全的,所以在编译时会要进行类型检查,并把不匹配的类型标记为错误。
import Cocoa
var varA = 200
varA = "imondo.cn"
print(varA)编译时,会报错。
类型推断
当你要处理不同类型的值时,类型检查可以帮你避免错误。然而,这并不是说你每次声明常量和变量的时候都需要显式指定类型
如果你没有显式指定类型,Swift 会使用类型推断(type inference)来选择合适的类型。
let num = 32
// 会推测为 Int
let PI = 3.14159
// 会被推测为 Double 类型TIP
当推断浮点数的类型时,Swift 总是会选择 Double 而不是 Float
变量
变量声明
// 存储型变量或存储型变量属性
var str = "imondo.cn"
// 常量
let num = 10变量名可以由字母,数字和下划线组成。
变量名需要以字母或下划线开始。
Swift 是一个区分大小写的语言,所以字母大写与小写是不一样的。
变量和常量可以使用 print 函数来输出。在字符串中可以使用括号与反斜线来插入变量
如:
import Cocoa
var name = "Mondo"
var site = "https://imondo.cn"
print("\(name)的首页为:\(site)")执行结果:
Mondo的首页为 https://imondo.cn字面量
字面量,就是指像特定的数字,字符串或者布尔值,能够直接了当地指出自己的类型并为变量进行赋值的值。
整型
浮点型
字符串型
布尔型
true表示真false表示假nil表示没有值
前端小册