变量和常量是什么?
首先看下面这段代码。 虽然还没有学习数字类型和运算符。 不过你应该可以说出来这段代码会在控制台输出什么。
import Foundation
print(1 + 1) // 这里输出什么?
当然是输出数字2。 这行代码的意思就是将1+1的结果输出到控制台。
实际的应用中, 我们会在程序中进行大量的计算, 这些计算的结果需要临时保存, 等到合适的地方再使用。
如果像上面这样直接输出1+1的运算结果。 输出完以后结果就丢掉了, 我们需要想办法保存下来。 这就离不开变量和常量了。
变量
变量就是将一个自定义的名称和特定的值关联起来。 这样我们就可以通过自定义的名称引用关联的值了。
常量
常量也是用名字关联特定的值。 与变量的区别是: 常量的值一旦设置好,就不能更改了。 变量的值可以在将来更新成不同的值。
声明变量和常量
声明语法
变量和常量需要先声明, 再使用。 变量使用关键字 var
, 常量使用关键字 let
。
关键字: 也叫保留字。 在编程语言中, 关键字具有特殊的意义, 通常用来支持类型系统, 或者识别程序结构等。
import Foundation
// 声明变量语法:var 自定义名称 = 值
// 下面的语句声明了名为age的变量,值是18
var age = 18
// 声明常量语法:let 自定义名称 = 值
// 下面的语句声明了名为pi的常量,值是3.14
let pi = 3.14
验证常量不可修改
我们尝试修改变量和常量,看看会发生什么。
import Foundation
// 变量age
var age = 18
// 声明语句使用的”=“称为赋值运算符。
// 意思是将等号右边的值,赋值给左边的变量。
// 已经声明过的变量,可以使用=再次赋值。
age = 20
运行代码,程序正常结束。 我们修改常量试试。
还不用运行, Xcode已经提示我们错误了。 错误信息很明显: pi是let声明的常量, 所以不能再次赋值。
同时声明多个变量
如果想要同时声明多个变量或常量,可以选择一个一个声明。
也可以选择在一行内声明多个,它们之间使用 ,
分隔。
import Foundation
// 多行声明
var a = 1
var b = 2
// 一行声明
var x = 1, y = 2, z = 3
类型注解
在声明变量或者常量时, 可以提供一个类型注解, 明确变量或常量可以存储的值的类型。
要使用类型注解, 在声明变量或者常量时, 在名称后面加上冒号,空格以及要使用的类型名称。
import Foundation
// 下面的代码,声明了一个名为username的变量,可以存储String类型的值
// String类型就是字符串,比如之前我们使用过的 “hello world”
var username: String
声明过变量以后, 我们就可以直接赋值了。
import Foundation
// 先声明
var username: String
// 再赋值
username = "hzclog"
所以我们刚才学习声明变量语法的时候, 在一行内完成了变量的声明与赋值。
import Foundation
// 一行内声明并赋值:声明userName变量,值为hzclog
var userName = "hzclog"
// 先声明userEmail变量,值为String类型
var userEmail: String
// 再给声明过的userEmail变量赋值为[email protected]
userEmail = "[email protected]"
你问第一种方式怎么没看到类型注解? 这是因为编译器很聪明的, 它根据值的类型推断出了变量的类型。 带上类型注解的完整代码就是这样:
var userName: String = "hzclog"
实际编码过程中, 没有必要每个变量都带上类型注解。 因为编译器真的足够聪明了。
不要重复声明变量
一旦声明了某个类型的常量或变量, 就不能再用相同的名称声明, 也不能将其改为存储不同类型的值。
输出变量或常量
刚才的代码中, 我们定义了很多变量或者常量, 但是没有使用。 现在让我们将变量输出到控制台中。
import Foundation
var name = "hzclog"
print(name)
var age = 18
print(age)
let pi = 3.14
print(pi)
运行结果
这里要注意, print里面的变量名称不要带双引号。 没有双引号表示要将变量关联的值输出, 如果带上双引号就直接输出字符串了。
字符串插值
假设现在有一个变量保存着计算出来的平均分, 我们希望使用分数输出一段对用户友好的文本: 恭喜你, 你的平均分是xx, 下次继续努力!
xx的部分我们需要使用变量关联的数据。 可以使用字符串插值。
字符串中, 在需要使用变量值的地方, 用圆括号将变量名包起来, 并在括号前面加上反斜线。 Swift就会在对应的位置替换成变量的值。
代码
import Foundation
// 变量avgScore保存分数值
var avgScore = 95
// 在字符串中,使用插值语法使用变量值
print("恭喜你,你的平均分是\(avgScore),下次继续努力!")
运行结果
恭喜你,你的平均分是95,下次继续努力!
反斜线就是回车Enter上面的按键。
下一部分
变量和常量的部分就是这些。 下篇文章我们看看Swift的数据类型都有什么。