首页 Swift 5.1 学习 (2) : 常量和变量
文章
取消

Swift 5.1 学习 (2) : 常量和变量

常量变量变量名 (比如: name 或者 age) 和一个 (比如: 张三 或者 18) 关联起来. 常量 的值一旦设置就 不可改变. 变量 可以在将来设置不同的值.

声明常量和变量

常量变量 在使用之前都必须事先进行声明. 声明 常量 使用 let 关键字, 声明 变量 使用 var 关键字:

1
2
3
4
// 常量
let name = "张三"
// 变量
var age = 18

也可以在一行内同时声明多个 常量 或者 变量, 常量 或者 变量 之间使用 , 分隔:

1
2
let a = 1, b = 2, c = 3
var x = 4, y = 5, z = 6

提示 如果一个 存储值 在代码执行的整个过程中都不会被修改, 则使用 let 关键字来声明为 常量. 变量 仅仅在 存储值 在代码执行过程中需要修改的时候使用.

类型注解

声明 常量变量 时候可以通过 类型注解 来明确他们 可以存储的值的类型.

同样的, 你也可以这样在一行定义多个 变量:

1
var red, green, blue: Double

常量和变量的命名

常量变量 的名称可以包含 几乎所有字符 , 包括 Unicode 字符:

1
2
let π = 3.14159
let 你好 = "你好世界"

但是, 常量变量 名都不能包含: 空格, 数学符号, 箭头, 私有的Unicode标量, 方框绘制字符. 名称可以包含 数字, 但是 不能以数字开头.

一旦声明了某个类型的 常量 或者 变量, 就不能再声明 同名常量 或者 变量. 也不能修改其 存储类型, 也无法把 常量 修改为 变量, 反之亦然.

提示 如果需要声明的 常量变量 的名称是 Swift保留关键字, 你可以使用 ``` 符号包括该 常/变量名. 但是一般不推荐使用 保留关键字 作为 常/变量名.

变量赋值

你可以通过 = 来改变一个已经存在的 变量 的值:

1
2
var name = "张三"
name = "李四"

但是 常量 的值不可改变:

1
2
let age = 18
age = 19

这样的写法将会报编译错误: age cannot be changed.

常量和变量的打印

你可以通过 print(_:separator:terminator:) 方法来打印 常量变量:

1
2
print(name)
// 打印结果: 李四

print(_:separator:terminator:) 方法是一个全局的方法. 他可以以合适的方法在 控制台 打印一个或者多个值. 其中 separatorterminator 2 个参数有默认值, 因此在调用的时候可以省略掉. 默认情况下, 打印结果的尾部会输出一个 换行符 来终止打印. 如果想要不带 换行符 的输出结果, 可以传入 空字符串 作为参数 terminator 的值. 比如:

1
print(name, terminator: "")

Swift 使用字符串插值的方式把 常/变量名 包含在字符串中作为 占位符, 并在输出时候替换成 常/变量 的值. 使用 () 来括住 常/变量名, 并在括号前使用 \ 转义:

1
2
print("我的名字是: \(name)")
// 打印结果: 我的名字是: 李四

注释

注释 是代码中 非可执行的文本, 用于 注释提醒. 编译器在编译代码时候会忽略掉 注释.

Swift 中的注释和 C, OC 中的注释非常相似.

单行注释

单行注释// 开始, 注释单行内容. 例如:

1
// 这是一个单行注释

多行注释

多行注释/* 开始, 以 */ 结束, 可以注释多行内容. 例如:

1
2
3
4
/*
这是多行注释的第一行
这是多行注释的第二行
*/

COC 中的多行注释不同的是, Swift 中的 多行注释 可以进行 嵌套. 例如:

1
2
3
/* 第一个单行注释开始
/* 嵌套的多行注释 */
第一个单行注释结束*/

嵌套 多行注释 可以快速注释大块代码, 尽管注释快内已经包含了 多行注释.

关于分号

不想其他编程语言, Swift 中可以省略代码语句尾部的 ;, 当然你写上 ; 也不会有任何问题. 但是同一行内如果有多句代码, 需要使用 ; 来分割. 例如:

1
2
let cat = "猫"; print(cat)
// 打印结果: "猫"
本文由作者按照 CC BY 4.0 进行授权