swift语法教程零基础:变量函数核心知识点实战详解

admin IOS开发教程 22


零基础学 Swift 的新手是不是都有这样的困惑?变量和常量总分不清,不知道什么时候该用 let 什么时候该用 var;函数定义时参数和返回值搞混,写出来的代码要么报错要么没效果;看教程觉得懂了,自己动手写又啥都记不住。别着急,兔子哥当年学 Swift 语法时,变量名随便用 “a”“b” 代替,写了几十行代码后完全看不懂逻辑;第一次写函数求平均数,还把参数顺序搞反了,结果算出来的数根本不对。今天就带零基础的朋友把变量和函数这两个核心知识点讲透,再配上实战案例和避坑技巧,新手快速掌握 Swift 语法真没那么难!

变量:给数据 “贴标签”,编程的第一步


变量是编程的基础,就像给每个数据贴个标签,方便我们找到和使用,这部分学好了,后面的语法就顺了。
  1. 变量和常量:分清 “能改” 和 “不能改”

  • 常量用let定义,赋值后不能改,就像身份证号,一生只有一个。比如let birthYear = 2000,不管过多少年,birthYear永远是 2000,适合存固定不变的数据。
  • 变量用var定义,值可以随时改,就像年龄,每年都会增长。比如var age = 20,明年可以写成age = 21,适合存会变化的数据。

很多新手问:“什么时候用 let 什么时候用 var?” 其实很简单,不确定会不会改就先用 var,确定不变就用 let,用 let 还能让 Swift 更高效地管理内存呢。
  1. 数据类型:不同数据用不同 “盒子” 装
    Swift 里的数据有不同类型,就像装水果要用不同的盒子,整数装在 Int 盒子,小数装在 Double 盒子,新手先记这几种常用的:

数据类型作用例子定义方式
Int存没有小数点的整数18、-5、0var count: Int = 5
Double存带小数点的小数95.5、3.14let height: Double = 1.75
String存文字内容“Swift”“你好”let name: String = "小明"
Bool存 “真” 或 “假”true、falsevar isLogin: Bool = false

Swift 有个方便的功能,定义变量时可以不写类型,它会自动推断。比如let score = 95,Swift 会认出这是 Int 类型;let weight = 65.5,会自动推断成 Double,新手刚开始可以省点事不写类型。
  1. 变量命名:这 5 条规则千万别犯

  • 只能用字母、数字、下划线,不能用数字开头(比如1score不行,score1可以)。
  • 不能用 Swift 的关键字(比如if for func这些词,系统已经占用了)。
  • 区分大小写,Namename是两个不同的变量,别混着用。
  • 最好 “见名知意”,比如userName代表用户名,age代表年龄,别用 “a”“b” 这种没意义的名字。
  • 别用中文当变量名,虽然 Swift 支持,但容易在不同设备上显示乱码。

函数:把重复代码 “打包”,一次编写多次用


写代码时经常会重复用某段逻辑,比如计算平均分、判断成绩等级,这时候函数就派上用场了,能帮你少写很多重复代码。
  1. 函数怎么定义?3 步写出你的第一个函数
    func关键词定义函数,格式很简单:

swift
func 函数名(参数1: 类型, 参数2: 类型) -> 返回值类型 {// 函数体:要执行的代码return 结果}

举个例子,写一个计算长方形面积的函数:
swift
// 定义函数:接收宽和高,返回面积func calculateArea(width: Double, height: Double) -> Double {let area = width * height  // 计算面积return area  // 返回结果}

  1. 参数和返回值:别搞混这两个概念

  • 参数:函数括号里的内容,是函数的 “输入”。比如上面的widthheight,调用函数时要传具体的数值。
  • 返回值:用-> 类型表示,是函数的 “输出”。如果函数不需要返回结果,可以不写-> 类型return

调用函数时要带参数名,这是 Swift 的特点,别漏了:
swift
// 调用计算面积的函数let area = calculateArea(width: 5, height: 3)  // 参数名不能少print(area)  // 输出15.0

  1. 实战案例:用函数做成绩统计
    写一个函数判断成绩等级,输入分数返回等级:

swift
func getGrade(score: Int) -> String {if score >= 90 {return "优秀"} else if score >= 80 {return "良好"} else if score >= 60 {return "及格"} else {return "不及格"}}// 调用函数let myScore = 85let grade = getGrade(score: myScore)print("成绩等级:", grade)  // 输出“良好”

这个函数接收 Int 类型的分数,返回 String 类型的等级,逻辑清晰,后面需要判断成绩时直接调用就行,不用重复写 if-else 代码。

实战练习:变量和函数结合,做个简单计算器


把变量和函数结合起来,做一个能算加减乘除的简易计算器,练手又实用。
  1. 步骤 1:定义变量存输入和结果

swift
var num1: Double = 0  // 第一个数var num2: Double = 0  // 第二个数var result: Double = 0  // 计算结果

  1. 步骤 2:定义加减乘除函数

swift
// 加法func add(a: Double, b: Double) -> Double {return a + b}// 减法func subtract(a: Double, b: Double) -> Double {return a - b}// 乘法func multiply(a: Double, b: Double) -> Double {return a * b}// 除法(处理除数为0的情况)func divide(a: Double, b: Double) -> Double {if b == 0 {print("除数不能为0")return 0}return a / b}

  1. 步骤 3:调用函数计算结果

swift
num1 = 10num2 = 5result = add(a: num1, b: num2)print("\(num1) + \(num2) = \(result)")  // 输出10.0 + 5.0 = 15.0result = multiply(a: num1, b: num2)print("\(num1) × \(num2) = \(result)")  // 输出10.0 × 5.0 = 50.0

运行这段代码,就能看到计算结果了,是不是很有成就感?这个练习把变量存数据、函数做计算结合起来,刚好练到核心知识点。

避坑指南:新手最容易踩的 5 个坑


  1. 坑 1:变量未初始化就使用,报错 “Variable 'xxx' used before being initialized”
    定义变量时没赋值,直接用了,比如var score: Int; print(score)。解决:定义时就赋值,var score: Int = 0,或者用可选类型var score: Int?(但要用if let解包)。
  2. 坑 2:函数调用时参数名写错,报错 “Extra arguments at positions #1”
    函数定义是func add(a: Int, b: Int),调用时写成add(x: 5, b: 3)(参数名 a 写成 x)。解决:调用时参数名必须和定义时完全一致,Swift 对参数名要求很严。
  3. 坑 3:把 “=” 当 “等于” 用,条件判断出错
    在 if 语句里写成if score = 100,其实 “=” 是赋值,判断相等要用 “==”。解决:条件判断用if score == 100,别少写一个等号。
  4. 坑 4:函数返回值类型不匹配,报错 “Cannot convert return expression of type 'Int' to return type 'String'”
    函数定义返回 String,却返回了 Int,比如func getResult() -> String { return 100 }。解决:确保 return 的结果类型和->后面的类型一致。
  5. 坑 5:常量被重新赋值,报错 “Cannot assign to value: 'xxx' is a 'let' constant”
    用 let 定义的常量被重新赋值,比如let maxScore = 100; maxScore = 90。解决:如果需要修改,把 let 改成 var,var maxScore = 100

自问自答:零基础学变量和函数常问的问题


“变量必须声明类型吗?不写类型会不会出错?”
不用必须声明!Swift 有自动类型推断功能,let age = 20会自动推断成 Int,let weight = 65.5会推断成 Double,新手刚开始可以不写类型,减少代码量。但如果变量先定义后赋值,最好写类型,比如var score: Int; score = 95,不然 Swift 不知道它是什么类型。
“函数一定要有参数和返回值吗?”
不一定!没有参数就空括号,没有返回值就不写-> 类型。比如写一个打招呼的函数:
swift
func sayHello() {print("Hello Swift!")  // 没有参数和返回值}sayHello()  // 直接调用

这种函数适合做简单的操作,不用输入也不用输出结果。

结尾心得


变量和函数是 Swift 语法的 “骨架”,把这两个学好,写简单程序完全没问题。兔子哥的经验是,学变量要养成 “见名知意” 的习惯,别偷懒用简单字母;学函数要多练参数和返回值的传递,理解 “输入→处理→输出” 的逻辑。新手别怕犯错,每个错误都是进步的机会,把常见的坑踩一遍,以后写代码就顺了。每天花半小时练这两个语法,写几个小例子,一周就能熟练掌握,后面学更复杂的知识也会轻松很多,加油,你比自己想象中更厉害!

标签: 贴标签 身份证

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~