基础规则
基础部分
- Swift 包含了 C 和 Objective-C 上所有基础数据类型
- Int 整型值
- Double 和 Float 浮点型值
- Bool 布尔型值
- String 文本型数据
- Array、Set 和 Dictionary 集合类
- Tuple 元组
常量和变量
- 常量的值一旦设定就不能改变,而变量的值可以随意更改
- 常量和变量必须在使用前声明
- let 声明常量 (不需要改变的值)
- var 声明变量 (需要改变的值)
let a = 100
var b = 200
var x = 0.0, y = 0.0, z = 0.0
类型注解
- 声明常量或者变量的时候可以加上类型注解,说明常量或者变量中要存储的值的类型。
let letTestSring: String = "你好"
var varTestSring: String = "你好"
let letTestFloat: Float = 0.2
var varTestFloat: Float = 0.3
- 定义多个同样类型的变量,用逗号分割,并在最后一个变量名之后添加类型注解。
- 声明常量或者变量的时候赋了一个初始值,Swift 可以推断出这个常量或者变量的类型。
var red, green, blue: Double
常量和变量的命名
- 常量和变量名可以包含任何字符,包括 Unicode 字符。
- 常量与变量名不能包含数学符号箭头,保留的(或者非法的)Unicode 码位,连线与制表符。
- 不能以数字开头,但是可以在常量与变量名的其他地方包含数字。
let 你好 = "你好世界"
let 🐶🐮 = "dogcow"
输出常量和变量
- Swift 会用当前常量或变量的值替换这些占位符。将常量或变量名放入圆括号中,并在开括号前使用反斜杠将其转义。
let π = 3.14159
print(π)
print("我是打印的数据\(π)")
注释
//这是一行注释
/* 这也是一个注释,
但是是多行的 */
/* 这是第一个多行注释的开头
/* 这是第二个被嵌套的多行注释 */
这是第一个多行注释的结尾 */
分号
- Swift 并不强制要求你在每条语句的结尾处使用分号(;)。
- 同一行内写多条独立的语句必须加分号(;)。
let π = 3.14159; print(π)
数
整数
- 有符号: 正、负、零
- 无符号: 正、零
- 不同整数类型的 min 和 max 属性来获取对应类型的最小值和最大值
Int 和 UInt
- 在32位平台上,Int 和 Int32 长度相同 UInt 和 UInt32 长度相同。
- 在64位平台上,Int 和 Int64 长度相同 UInt 和 UInt64 长度相同。
- Int8, Int16, Int32, Int64 分别表示 8 位, 16 位, 32 位, 和 64 位的有符号整数形式。
- UInt8, UInt16, UInt32, UInt64 分别表示 8 位, 16 位, 32 位 和 64 位的无符号整数形式。
浮点数:Float、Double
- 浮点数是有小数部分的数字 ,浮点类型比整数类型表示的范围更大,可以存储比 Int 类型更大或者更小的数字。
- Double 表示64位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型。
- Float 表示32位浮点数。精度要求不高的话可以使用此类型。
- Double 精确度很高,至少有15位数字,而 Float 只有6位数字。
数值型字面量
- 所谓字面量,就是指像特定的数字,字符串或者是布尔值这样,能够直接了当地指出自己的类型并为变量进行赋值的值。
let aNumber = 3 //整型字面量
let aString = "Hello" //字符串字面量
let aBool = true //布尔值字面量
- 整型字面量 可以是一个十进制,二进制,八进制或十六进制常量。 二进制前缀为 0b,八进制前缀为 0o,十六进制前缀为 0x,十进制没有前缀 。
let decimalInteger = 17 // 17 - 十进制表示
let binaryInteger = 0b10001 // 17 - 二进制表示
let octalInteger = 0o21 // 17 - 八进制表示
let hexadecimalInteger = 0x11 // 17 - 十六进制表示
- 浮点型字面量有整数部分,小数点,小数部分及指数部分。
- 除非特别指定,浮点型字面量的默认推导类型为 Swift 标准库类型中的 Double,表示64位浮点数。
- 浮点型字面量默认用十进制表示(无前缀),也可以用十六进制表示(加前缀 0x)
let decimalDouble = 12.1875 //十进制浮点型字面量
let exponentDouble = 1.21875e1 //十进制浮点型字面量
let hexadecimalDouble = 0xC.3p0 //十六进制浮点型字面量
- 浮点型字面量允许使用下划线 _ 来增强数字的可读性,下划线会被系统忽略,因此不会影响字面量的值。同样地,也可以在数字前加 0,并不会影响字面量的值。
let paddedDouble = 000123.456
let oneMillion = 1_000_000
let justOverOneMillion = 1_000_000.000_000_1
类型安全和类型推断
- Swift编译代码时会进行类型检查,并把不匹配的类型标记为错误。
var varA = 42
varA = "This is hello"
print(varA)
- 不需显式指定类型,Swift 会使用类型推断,编译器可以在编译代码的时候自动推断出表达式的类型。
let intA = 42 // intA 会被推测为 Int 类型
let pi = 3.14159 // pi 会被推测为 Double 类型
let floatA = 3 + 0.14159 // floatB 会被推测为 Double 类型
布尔值:Bool
- 布尔值指逻辑上的值,因为它们只能是真或者假。Swift 有两个布尔常量,true 和 false。
网友评论