1. let vs final
在 Swift 中,let 和 final 分别用于声明常量和不可变属性。
2.let
let 关键字用于声明常量,一旦被赋值后就不能再次被修改。 常量可以在声明时或稍后的某个时刻赋值,但一旦赋值后,其值不能再被改变。
声明常量的一般语法是 let constantName: Type = value。 示例:
let a = 3
// a = 5 // 这行代码将导致编译错误,因为常量不能再次被赋值
3.final
在类中,final 用于标记一个类,表明这个类是不可继承的,不能被其他类继承。 在属性声明中,final 用于表示属性是不可变的,即一旦赋值后就不能再次被修改。
在 Swift 中,类和类的成员(属性、方法、下标等)默认都是不可继承的,所以通常情况下并不需要显式地使用 final 关键字。
示例:
final class MyTestClass {
final func testMethod() {
// 这个方法不能在子类中被重写
}
}
4.小结
4.1.final和let之间的主要区别:
用途:
final用于控制继承和重写行为。let用于声明不可变的变量。
作用域
final作用于类、方法或属性的定义,影响它们在整个继承体系中的行为。let作用于单个变量,确保该变量在声明的作用域内保持不变。
修改性
final是一个修饰符,它不涉及值的修改;而是限制代码的其他部分,如何继承和重写特定的类、方法或属性。
let声明一个常量,确保其值在初始化后不会被修改