变量或常量在使用前必须先声明并初始化,包括:
(1)给变量或常量起一个名字
同一个作用域内的两个变量或常量不能重名,否则将无法区分。
变量或常量的作用域指的是变量或常量起作用的范围。根据作用域可以将变量或常量分为全局的和局部的。
全局变量或常量是只属于Swift源文件而不属于任何函数、闭包、结构体、类和枚举的变量或常量。
全局变量或常量的作用域是从定义该变量或常量的位置开始至源文件结束。
(2)指定变量或常量的数据类型
指定数据类型之后,变量或常量只能保存指定数据类型的数据。
Swift是类型安全(静态类型)的语言,在编译代码时编译器会进行数据类型检查,这就要求代码中要操作的所有数据的数据类型都是清楚明确的。
(3)给变量或常量赋予一个初始值
变量初始化之后,可以对其重新赋予数据类型相同的其它值;常量初始化之后,不可以对其重新赋值。
因此,如果要被保存的数据会发生变化,那就声明一个变量进行保存;如果要被保存的数据不会发生变化,那就声明一个常量进行保存。
使用var声明变量,使用let声明常量。
声明变量或常量都有两种语法格式,声明变量的第一种语法格式为:var 变量名 = 初始值,声明常量的第一种语法格式为:let 常量名 = 初始值。
这种声明变量或常量的方式为隐式方式,也就是说,没有显式指定变量或常量的数据类型,但是为其设置了初始值,系统会根据初始值推断出变量或常量的数据类型。
可以通过Quick Help查看某个变量或常量被系统推断为哪个数据类型。按住option键并单击声明的变量或常量即可显示其Quick Help信息。
var age =18
let sex ="男"
// 同一个作用域内的两个变量或常量不能重名,否则将无法区分
// var age = 23
// 指定数据类型之后,变量或常量只能保存指定数据类型的数据
// age = 18.5
// 变量初始化之后,可以对其重新赋予数据类型相同的其它值
age = 19
// 常量初始化之后,不可以对其重新赋值
// sex = "女"
声明变量的第二种语法格式为:var 变量名: 数据类型 [= 初始值],声明常量的第二种语法格式为:let 常量名: 数据类型 [= 初始值]。
这种声明变量或常量的方式为显式方式,也就是说,显式指定了变量或常量的数据类型。
var name: String = "Swift Programming Language"
// 上面一行代码等价于:
/*
var name: String
name = "Swift Programming Language"
*/
let weight: Float = 65.8
// 上面一行代码等价于:
/*
let weight: Float
weight = 65.8
*/
可以在同一行同时声明并初始化多个变量或多个常量,之间用逗号进行分隔。
这些变量或常量的数据类型既可以是相同的,也可以是不同的。
// 同时声明并初始化多个变量,这些变量的数据类型是相同的
var a: Int=5, b: Int=8, c: Int=3
// 同时声明多个变量(没有初始化),这些变量的数据类型是相同的
var A1: Int, B1: Int, C1: Int
var A2, B2, C2:Int
// 同时声明并初始化多个变量,这些变量的数据类型是不同的
var i:Int = 6, s: String = "abc", f: Floa t= 1.8