常量 和 变量 将 变量名
(比如: 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:)
方法是一个全局的方法. 他可以以合适的方法在 控制台
打印一个或者多个值. 其中 separator
和 terminator
2 个参数有默认值, 因此在调用的时候可以省略掉. 默认情况下, 打印结果的尾部会输出一个 换行符
来终止打印. 如果想要不带 换行符
的输出结果, 可以传入 空字符串
作为参数 terminator
的值. 比如:
1
print(name, terminator: "")
Swift 使用字符串插值的方式把 常/变量名
包含在字符串中作为 占位符
, 并在输出时候替换成 常/变量
的值. 使用 ()
来括住 常/变量名
, 并在括号前使用 \
转义:
1
2
print("我的名字是: \(name)")
// 打印结果: 我的名字是: 李四
注释
注释 是代码中 非可执行的文本
, 用于 注释
或 提醒
. 编译器在编译代码时候会忽略掉 注释.
Swift 中的注释和 C
, OC
中的注释非常相似.
单行注释
单行注释 以 //
开始, 注释单行内容. 例如:
1
// 这是一个单行注释
多行注释
多行注释 以 /*
开始, 以 */
结束, 可以注释多行内容. 例如:
1
2
3
4
/*
这是多行注释的第一行
这是多行注释的第二行
*/
与 C
和 OC
中的多行注释不同的是, Swift 中的 多行注释 可以进行 嵌套
. 例如:
1
2
3
/* 第一个单行注释开始
/* 嵌套的多行注释 */
第一个单行注释结束*/
嵌套 多行注释 可以快速注释大块代码, 尽管注释快内已经包含了 多行注释.
关于分号
不想其他编程语言, Swift 中可以省略代码语句尾部的 ;
, 当然你写上 ;
也不会有任何问题. 但是同一行内如果有多句代码, 需要使用 ;
来分割. 例如:
1
2
let cat = "猫"; print(cat)
// 打印结果: "猫"