可选类型:避免空值引发的崩溃
开发应用时,经常会遇到某个变量可能没有值的情况。比如用户填写表单时漏填了手机号,程序里如果直接使用这个未赋值的变量,很容易导致闪退。Swift 的可选类型(Optional)就是为了解决这个问题而设计的。它明确表示一个变量“有值”或“没有值”。
var phoneNumber: String? = nil
if let number = phoneNumber {
print("拨打电话:$number)")
} else {
print("电话号码为空")
}这样写代码,系统会强制你检查值是否存在,减少了运行时错误。
类型推导:少写代码,更清晰
定义变量时不用每次都写类型,Swift 能根据赋的值自动判断。比如:
let username = "Tom"
var age = 25虽然没写 String 和 Int,但 Swift 知道它们的类型。这不仅省事,也让代码看起来更干净,像日常阅读一样顺畅。
闭包:简化回调处理
在做网络请求或者按钮点击事件时,经常要用到回调函数。Swift 的闭包语法简洁,特别适合这类场景。例如给一个登录按钮添加动作:
loginButton.addAction {
print("开始验证用户信息")
}这种写法比传统代理方式更直接,逻辑集中,不容易出错。
结构体与类的区别使用
Swift 鼓励多用结构体(struct),尤其是在数据模型不涉及继承且需要值传递的时候。比如记录员工基本信息:
struct Employee {
var name: String
var id: Int
}结构体默认是值类型,复制时独立存在,不会互相影响。而类是引用类型,适合需要共享状态的场景,比如一个全局的数据管理器。
扩展功能:给已有类型加新方法
项目做着做着,可能会发现 String 缺少某些实用功能,比如判断是否是邮箱。Swift 允许通过 extension 给原始类型添加方法:
extension String {
var isEmail: Bool {
return self.contains("@") && self.contains(".")
}
}之后所有字符串都可以用 .isEmail 来判断,就像原生功能一样自然。
这些特性组合起来,让写 iOS 或 macOS 应用变得更安全、更高效。尤其是对刚接手项目的开发者来说,代码读起来更容易理解,改起来也少踩坑。