轻学编程|Swift 教程 007:变量和常量
轻学编程|Swift 教程 007:变量和常量

轻学编程|Swift 教程 007:变量和常量

本节课主要学习 Swift 中的变量和常量,并认识一些常用的数据类型以及基础运算符。

这些内容是编程中最基础的知识,也是后续学习 SwiftUI 的重要基础。

生活中的变量和常量

我们可以通过生活中的事物来理解变量和常量。

生活中的变量:

  • 电视中每个节目播放的内容不同
  • 每天的天气都不一样
  • 时钟每一秒都会变化

这些事物的共同特点是:它们会发生改变。

如果电视永远只有一个画面,天气永远是晴朗的,时钟的指针永远不动,那么这些事物就是常量。

一个可能会发生变化,另一个不会发生变化。

理解变量和常量

在 App 开发中,通常需要用户填写或保存一些信息。

例如:

  • 账号名称
  • 生日
  • 联系方式
  • 住址

这些信息会被保存并显示出来。

例如,用户在 App 中输入一个名称:

FangJunyu

我们需要把这个名称保存起来,以便在 App 中显示。

可以把保存过程简单的理解为:在一个抽屉中存放东西。

当我们保存名称时,就像把名称放进一个抽屉里。

需要保存的东西可能有很多,抽屉也会有很多。为了知道每个抽屉里装的是什么,我们需要给抽屉起一个名字。

例如:

name

在这个例子中,name 是名称,FangJunyu 是保存的信息。

在 Swift 中,如果需要保存数据,就必须使用变量(var)或常量(let)进行声明。

由于名称通常是可以修改的,因此我们应该使用变量。

var name = "FangJunyu"

这里声明了一个名为 name 的变量,变量类型为 String,值为 “FangJunyu”。

变量和常量的区别

变量使用 var 声明:

var

常量使用 let 声明:

let

例如:

var name = "FangJunyu"
let id = 123456

如果声明为变量,表示这个值可以被修改;如果声明为常量,则无法再修改。

因此,变量和常量的主要区别在于:值是否允许改变。

修改常量

如果代码尝试修改常量的值:

let name = "Sam"
name = "Bob"

Swift 会提示无法完成赋值,因为它是一个常量。

Cannot assign to property: 'name' is a 'let' constant

这种机制可以帮助开发者避免某些重要数据被意外修改。

在 SwiftUI 中显示

打开 ContentView.swift 文件,在 View 内部声明变量:

struct ContentView: View {
    var name = "FangJunyu"

    var body: some View {
        Text(name)
    }
}

在这里声明了一个名为 name 的变量,并通过 Text 将它显示在界面上。

如果我们修改变量的内容:

struct ContentView: View {
    var name = "Sam"
    var body: some View {
        Text(name)
    }
}

Text 显示的文本内容也会发生改变。

通过这种方式,我们可以使用变量来控制界面显示的内容,而不需要每次直接修改 Text 中的文本。

如果其他地方需要获取这个信息,我们也可以把变量传递过去,相当于把“抽屉”里的内容交给其他地方使用。

SwiftUI 中变量和常量的位置

在 SwiftUI 中,变量和常量通常写在 body 外部:

struct ContentView: View {
    var name = "FangJunyu"

    var body: some View {
        Text(name)
    }
}

当然,也可以把变量和常量写在 body 内部:

struct ContentView: View {
    var body: some View {
        var name = "FangJunyu"
        Text(name)
    }
}

不过两者存在一个重要区别:

  • 如果变量和常量写在 body 内部,每次视图重新计算时都会重新创建这个变量。
  • 如果写在 body 外部,变量会作为视图结构题的属性存在,代码结构更清晰。

因此,在实际开发中,通常会把变量和常量写在 body 外部。

数据类型

变量可以保存很多不同类型的数据,这些类型被称为数据类型。

例如,我们之前使用 Text 显示文本:

Text("Hello, World")

这里的 “Hello, World” 属于字符串(String)类型。

字符串用于表示文本内容,在 Swift 中需要使用双引号 “” 包裹。

例如:

var hello = "Hello, World"

除了字符串以外,Swift 中还有许多数据类型。

初学阶段最常见的四种类型是:

  • String
  • Int
  • Double
  • Bool

这四种类型可以完成大部分基础的数据处理。

String

String 表示文本内容,例如:

var name = "FangJunyu"
var city = "Rizhao"

字符串通常用于表示:用户名、标题、文字内容。

Int

Int 表示整数,也就是没有小数的整数。

例如:

var age = 26
var count = 100

整数通常用于表示:年龄、数量、计数。

Double

Double 表示带有小数的数字。

例如:

var weight = 74.5
var height = 185.0

在 Swift 中,小数通常默认使用 Double 类型。

还有一个类似的类型叫 Float,但它能表示的数值范围更小,因此在实际开发中 Double 更常用。

Bool

Bool 类型用于表示两种状态:true 和 false。

例如:

var isShowAlert = true
var isLogin = false

Bool 类型常用于条件判断。例如,是否显示提示框。

对于只有两种结果的情况,非常适合使用 Bool 类型表示。

SwiftUI 中显示

当我们显示 String 类型时,可以直接使用 Text:

Text(name)

但是 Int、Double 等类型不是字符串,因此不能直接作为文本内容的一部分。

如果需要在 Text 中显示这些数据,可以使用字符串插值(String Interpolation):

\()

字符串插值需要写在字符串内容,并使用 \\() 包裹变量或常量。

例如:

var num = 1

Text("\(num)")
Text("DoubleNum: \(num * 2)")

在上面的代码中,”” 表示字符串,\\() 用于把变量或常量插入到字符串中。

例如:

"DoubleNum: \(num * 2)"

显示的内容为:

DoubleNum: 2

通过这种方式,我们可以在字符串中插入变量或常量,然后使用 Text 将它们显示在界面上。

提示:\\() 只能在字符串 “” 内部使用。

运算符

在声明变量或者常量的时候,我们可以看到下面的写法:

var num = 1

这里的 = 叫做赋值运算符。

它的作用是:把右侧的值赋给左侧的变量。

在这个例子中,1 被赋值给变量 num。

除了赋值运算符以外,还有一些常见的数字运算符:

- +
- -
- *
- /

当我们对数字进行计算时,例如 Int 或 Double 类型的数据,就会用到这些运算符。

例如:

var age = 21 + 3 // 24
var value = 30 - 2 // 28
var num = 1 * 3 // 3
var weight = 88.5 / 2 // 44.25

总结

变量、常量以及运算符是编程中最基础的概念。

通过变量和常量,我们可以在程序中保存各种数据;通过数据类型,可以明确数据的种类;通过运算符,可以对数据进行计算和处理。

这些知识就像是编程世界的基础工具。掌握这些内容,可以为后续学习 Swift 和 SwiftUI 打下坚实的基础。

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注