21天学会iOS开发:Swift基础语法-变量的声明与赋值

国际惯例,通常学习一门新的语言,都是从'Hello, World!'开始的

我们创建一个程序,输出一句Hello, World!,因为现在学习的是基础语法,所以我们可以在Xcode上的Playground上编写测试代码。

  • 首先打开Xcode,创建一个Playground文件
  • 接下来在生成的文件中增加print语句输出结果,如下图

到这里,你已经完成第一个程序了,接下来,开始讲变量的声明与赋值


在Swift中,变量是用来存储数据的容器。声明一个变量就是告诉编译器我们要使用一个特定的内存空间来存储数据。赋值是将数据放入已声明的变量中。

  1. 声明变量

    想象一下,我们有一个"房子"(变量),这个房子有一个门牌号(变量名),但没有具体的地址(值)。

    例如,我们使用var关键字声明一个名为name的变量,但没有赋值:

    swift 复制代码
    var name: String

    这里,name是一个字符串类型的变量,此时,name变量就像一个空房子,我们只知道它的门牌号,但不知道具体的地址。

    想象一下,我们有一个"房子"(变量)。这个房子有一个门牌号(变量名),但没有具体的地址(值)。

  2. 变量的赋值

    现在,我们知道了这个房子的门牌号,但我们想知道这个房子具体在哪里。于是,我们为这个房子赋予一个"地址"(值)。

    例如,我们给name变量赋值,赋值是将数据放入已声明的变量中。我们使用等号=来进行赋值操作。

    swift 复制代码
    name = "张三的家"

    现在,name变量不仅有门牌号(变量名),还有具体的地址(值)。

    因为该变量namevar来声明的,在Swift中,var表示该变量可以多次赋值,例如,我们将"房子"重新设置一个地址:

    swift 复制代码
    name = "李四的家"
  3. 变量的使用

    当我们想使用这个房子的地址时,我们只需要说出它的门牌号(变量名),然后说出具体的地址(值)。

    例如,我们可以打印出name变量的值:

    swift 复制代码
    print(name)

    这将输出"李四的家",如果没有重新赋值的话,将会输出第一次赋的值"张三的家",这就是我们为name变量赋予的地址。


  1. letvar

    在Swift中,使用 let("let there be")来声明常量,表示不可改变,使用 var("variable")来声明变量,表示可以多次改变,let只可以赋值一次,而var可以赋值多次。 如下图:

    "nameVar"变量用var修饰,所以改变值可以正常运行输出,而"nameLet"用let修饰,表示常量,所以重新赋值的话就会报错无法运行程序。

    以下是一些常量声明的例子:

    swift 复制代码
    //一分钟有60秒
    let minute: Int = 60
    
    // 一天有24小时
    let day: Int = 24
    
    // 圆周率估算到小数点后两位3.14
    let pi: Double = 3.14
    
    // 中国的中英文名字
    let chineseName: String = "中国"
    let englishName: String = "China"
  2. 类型注解类型推断

    Swift是一种强类型语言,这意味着我们需要明确指定变量的类型,格式为在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。但是,从Swift 3开始,Swift引入了类型推断功能,可以让编译器自动推断变量的类型。如上面常量的例子是添加了类型注解的,你也可以用以下的方式声明常量或者变量:

    swift 复制代码
    let minute = 60 // 编译器会自动推断minute的类型为Int
    let pi = 3.14 // 编译器会自动推断pi的类型为Double
    let chineseName = "中国" // 编译器会自动推断chineseName的类型为String

    在以上几个例子中,我们没有显式地声明变量的类型,而是让编译器自动推断。这对于简化代码非常有用。但是,如果编译器无法确定变量的类型,我们需要显式地声明它,这个后面再讲。

  3. 常量和变量的命名

    常量和变量名可以包含几乎所有的字符,包括 Unicode 字符,但不能用数字或符号(除了下划线_)开头声明变量,也不能用系统保留关键字(例如letvar),变量的命名一般都要有意义,不要太随意取名字,不然代码量多的时候阅读理解难度就很大了,不利于团队协作写代码,一般都用英文命名,好的命名能更好的理解代码:

    swift 复制代码
    let name = "jack"
    let π = 3.14159
    let 你好世界 = "Hello,World!"
    let 🍎🍓 = "fruit"
  4. 注释

    //////*这里写注释*//*!这里写注释*/

    这些都是注释语句,解释代码用的,编译器运行的时候会忽略注释代码。一般添加注释是为了方便阅读代码,或者为了理清代码逻辑。

总结

所以,变量的声明就像是为一个房子定好门牌号,而变量的赋值则是为这个房子找到具体的地址。当我们需要使用这个地址时,我们只需提及房子的门牌号。

相关推荐
iFlyCai2 小时前
Xcode 16 pod init失败的解决方案
ios·xcode·swift
Hamm11 小时前
先别急着喷,没好用的iOS-Ollama客户端那就自己写个然后开源吧
人工智能·llm·swift
hxx2211 天前
iOS swift开发--- 加载PDF文件并显示内容
ios·pdf·swift
今天也想MK代码2 天前
基于ModelScope打造本地AI模型加速下载方案
ai·语言模型·swift·model·language model
袁代码2 天前
Swift 开发教程系列 - 第11章:内存管理和 ARC(Automatic Reference Counting)
开发语言·ios·swift·ios开发
袁代码3 天前
Swift 开发教程系列 - 第8章:协议与扩展
开发语言·ios·swift·ios开发
袁代码3 天前
Swift 开发教程系列 - 第9章:错误处理
开发语言·ios·swift·ios开发
iFlyCai3 天前
Swift中的Combine
开发语言·ios·swift·combine·swift combine
一丝晨光4 天前
Objective-C 1.0和2.0有什么区别?
java·开发语言·macos·c#·objective-c·swift·apple
新中地GIS开发老师5 天前
【GIS开发小课堂】高德地图+Three.js实现飞线、运动边界和炫酷标牌
开发语言·javascript·arcgis·前端框架·swift