跳到主要内容

Swift 变量、常量和字面量

提示
  1. 变量和常量的区别:在Swift中,变量(用var关键字声明)用于存储可以更改的数据,而常量(用let关键字声明)的值一旦设置就不能更改。
  2. 变量的声明和修改:变量可以在声明时赋初值,或者在声明后再赋值;已声明的变量可以修改其值,但不能改变其数据类型。
  3. 字面量的使用:字面量是代码中的固定值,可用于给变量和常量赋值,包括整数、浮点数、布尔值、字符串和字符。

1. Swift 变量

在编程中,变量是用来存储数据的容器(存储区域)。例如,

var num = 10

这里,num 是一个存储值 10 的变量。

在 Swift 中声明变量

在 Swift 中,我们使用 var 关键字来声明变量。例如,

var siteName: String
var id: Int

这里,

  • siteName 是一个 String 类型的变量。意味着,它只能存储文本值。
  • id 是一个 Int 类型的变量。意味着,它只能存储整数值。

注意:在 Swift 中,一旦声明了变量的类型,我们就不能更改它的类型。

为变量赋值

您可以使用 = 运算符为变量赋值。

var siteName: String
siteName = "mashangxue123.com"

print(siteName)

输出

mashangxue123.com

您也可以直接赋值给变量,而不用指定类型:

var siteName = "mashangxue123.com"
print(siteName) // mashangxue123.com

在这里,编译器会自动识别出 siteName 是一个 String 类型的变量。

更改变量的值

您可以更改现有变量的值。因此,名字是 变量。例如,

var siteName = "mashangxue123.com"

// 给 siteName 赋予新的值
siteName = "apple.com"
print(siteName)

输出

apple.com

这里,siteName 的值从 "mashangxue123.com" 变更为 "apple.com"。

Swift 变量命名规则

变量命名的规则是:

  1. 变量名必须以字母、下划线 _ 或美元符号 $ 开头。例如,
// 有效
var a = "hello"
var _a = "hello"
var $a = "hello"
  1. 变量名不能以数字开头。例如,
// 无效
var 1a = "hello" // 报错
  1. Swift 是区分大小写的。因此,Aa 是不同的变量。例如,
var A = 5
var a = 55
print(A) // 5
print(a) // 55
  1. 避免使用 Swift 关键字,如 varStringclass 等作为变量名。

注释

  • 给变量起一个描述性的名字是个好习惯。例如,numberofApplesaapplen 是更好的变量名。
  • 在 Swift 中,如果变量名包含多个单词,通常使用驼峰式大小写,例如 myVariableaddTwoNums 等。

2. Swift 常量

常量是一种特殊类型的变量,其值无法更改。例如,

let a = 5

在这里,a 初始化为 5 后,我们无法更改它的值。

在 Swift 中声明常量

在 Swift 中,我们使用 let 关键字来声明常量。常量的值无法更改。例如,

let x = 5
x = 10 // 错误
print(x)

输出

main.swift:4:1: error: cannot assign to value: 'x' 是一个 'let' 常量

此外,你不能在不初始化的情况下声明一个常量。例如,

let siteName: String
print(siteName)

输出

main.swift:4:7: error: 常量 'siteName' 在初始化之前使用

注意:

  • 如果你确定一个变量在整个程序中的值不会改变,建议使用 let
  • 命名变量的规则也适用于常量。

3. Swift 字面量

字面量是程序中固定值的表示。它们可以是数字、字符或字符串等。例如,"Hello, World!"1223.0"C" 等。

字面量常用于为变量或常量赋值。

例如:

let siteName = "Apple.com"

在上述表达式中,siteName 是一个变量,"Apple.com" 是一个字面量。

整数字面量

整数字面量是那些没有小数部分或指数部分的字面量。

Swift 中有四种类型的整数字面量:

类型示例备注
十进制5, 10, -68常规数字。
二进制0b101, 0b110b 开头。
八进制0o130o 开头。
十六进制0x130x 开头。

浮点字面量

浮点字面量是那些带有浮点小数点的数字字面量。例如,

let piValue: Float = 3.14

在这里,3.14 是一个浮点字面量,赋值给了 piValue 常量。

布尔字面量

有两种布尔字面量:truefalse

例如,

let pass: Bool = true

在这里,true 是一个布尔字面量,赋值给了 pass

字符串和字符字面量

字符字面量是用双引号包围的 Unicode 字符。例如,

let someCharacter: Character = "S"

在这里,S 是一个字符字面量,赋值给了 someCharacter

类似地,字符串字面量是用双引号 " 包围的字符序列。

例如,

let someString: String = "Swift is fun"

在这里,"Swift is fun" 是一个字符串字面量,赋值给了 someString