从厨房到代码台:用做菜思维理解iOS开发 - Swift入门篇③

发布于:2025-06-30 ⋅ 阅读:(14) ⋅ 点赞:(0)

从厨房到代码台:用做菜思维理解iOS开发 - Swift入门篇③

本章重点​

  • 熟悉常量和变量的声明和使用
  • 了解类型注解
  • 了解标识符命名规范

在这里插入图片描述

1、常量与变量:定量的食材 vs. 变化的调味

在烹饪(编程)中,我们需要地方来存放各种信息(食材和调味料)。Swift 提供了两种"容器"来存放它们:

  • 常量 (Constant):使用 let 关键字来声明。

    • 烹饪比喻一份精确计量的、一次性使用的食材。比如菜谱要求"100克面粉",一旦量好,这个"100克"就不应该再改变了。
    • 作用:这保证了数据的稳定性,在程序运行中不会被意外修改。
    • 使用场景:当你知道一个值在程序的整个生命周期内都不应该改变时。例如:用户的出生日期、π 的值(3.14159…)。
    • 最佳实践优先使用 let。这是一种更安全的编程习惯,能防止你无意中修改了不该变动的数据。只有当你确定一个值需要被改变时,才使用 var
  • 变量 (Variable):使用 var 关键字来声明。

    • 烹饪比喻一个在烹饪过程中随时可以添加的调味瓶。比如你可以随时往锅里加盐,盐的"总量"是变化的。
    • 作用:它的值在之后可以被随意修改。
    • 使用场景:当一个值需要被追踪和更新时。例如:一道菜的当前温度、文章的点赞数、游戏得分。

在 Playground 中动手试试:

// --- 常量 let ---
let mainIngredient = "鸡蛋" // 这道菜的主食材,定下来就不改了
let numberOfEggs = 4        // 需要4个鸡蛋,这个数量是固定的

print("主食材是: " + mainIngredient)

如果重新赋值程序就会报错
在这里插入图片描述
接下来,再试一试 var,现在可以正常重新赋值,随时改变变量的值

// --- 变量 var ---
var waterTemperature = 20 // 锅里水的温度,初始为20度(室温)
print("开始烧水,当前水温: \(waterTemperature)度")

waterTemperature = 100 // 水烧开了
print("水已烧开,当前水温: \(waterTemperature)度")

需要注意,常量和变量必须先声明才能使用,也就是说在变量名的签名得先用letvar告诉系统它是什么才能拿来用

在这里插入图片描述

2、类型注解:给你的"食材盒"贴上标签

通常,Swift 非常聪明,它可以根据你放入的"食材"自动判断出这个"盒子"应该是什么类型。这叫做类型推断 (Type Inference)

  • let name = "番茄炒蛋" 👉 Swift 知道 name 是个字符串 (String)
  • let quantity = 2 👉 Swift 知道 quantity 是个整数 (Int)

关于推导出来的类型,可以通过按住option键,此时光标会变成?形状,然后点击变量,就可以看到对应的类型了
在这里插入图片描述

但有时,我们需要更明确地告诉 Swift 这个盒子只能装特定类型的食材。这时就需要类型注解 (Type Annotation)

  • 烹饪比喻:给你的食材保鲜盒上贴一个标签,比如"只放蔬菜"或"只放调味料"。

语法:在常量或变量名后加上冒号 (:) 和类型名。

// 明确告诉 Swift,dishName 这个容器只能装字符串 (String)
let dishName: String = "麻婆豆腐"

// 明确指定菜的价格是 Double 类型,以支持小数
// Double 可以简单理解为带小数点的数字
var price: Double = 38.5

又或者,我们现在没有初值可以给变量赋值

// 声明一个变量,但暂时不给它赋值(比如等用户输入)。
// 这种情况下,必须使用类型注解,告诉 Swift 将来要存什么类型的数据。
var customerNotes: String 
// ... 后面可以根据用户的点单备注再给它赋值
customerNotes = "不要放葱"

在这里插入图片描述

4、命名规范:取个好名字很重要

给常量和变量取一个好名字,能让你的菜谱(代码)清晰易读。

  • 风格:使用小驼峰命名法 (lowerCamelCase)。名字以小写字母开头,后面的每个单词首字母大写。
  • 清晰性:名字要能清晰地表达出它存储的是什么内容。
// 糟糕的命名 👎
let n = "宫保鸡丁"
let p = 42
let a = "北京"

// 推荐的命名 👍
let dishNameForOrder = "宫保鸡丁"
let priceInCents = 4200
let deliveryAddress = "北京"

5、注释:给菜谱加小贴士

注释是给开发者看的,因此不会被当成代码执行

  • 单行注释:用 //
    // 这是主食材
    let mainIngredient = "鸡蛋"
    
  • 多行注释:用 /* … */
    /*
     这里可以写多行说明,
     比如解释复杂步骤。
    */
    var steps = ["切菜", "炒菜"]
    

The Basics 基础知识 | Swift官方文档


网站公告

今日签到

点亮在社区的每一天
去签到