Swift语言中,属性(property)是类(class)和结构体(struct)的核心组成部分。属性包括存储属性(stored properties)和计算属性(computed properties)。在Swift中,为属性设置默认值,可以通过在定义属性时直接赋值来实现。
设置默认值
- 存储属性:在声明存储属性时,可以直接赋值来设置默认值。
- 计算属性:计算属性没有默认值,因为它们不存储值,而是根据其他属性或计算结果来返回一个值。
以下是一个设置存储属性默认值的例子:
class Person {
var name: String = "John Doe" // name属性具有默认值"John Doe"
var age: Int
init(age: Int) {
self.age = age
}
}
在这个例子中,name 属性被赋予了默认值 "John Doe",而 age 属性没有默认值,需要在初始化时提供。
实战案例解析
假设我们正在开发一个简单的图书管理系统,我们需要一个Book类来表示图书。每个图书对象都应该有title(标题)、author(作者)和price(价格)属性,其中price应该有一个默认值。
下面是Book类的实现,其中包括了属性的默认值设置:
class Book {
var title: String
var author: String
var price: Double = 0.0 // 设置默认值为0.0
init(title: String, author: String, price: Double = 0.0) {
self.title = title
self.author = author
self.price = price
}
func describe() {
print("Book: \(title), Author: \(author), Price: \(price)")
}
}
// 使用Book类
let book1 = Book(title: "The Swift Programming Language", author: "Apple Inc.")
book1.describe() // 输出: Book: The Swift Programming Language, Author: Apple Inc., Price: 0.0
let book2 = Book(title: "Design Patterns", author: "Erich Gamma et al.", price: 29.99)
book2.describe() // 输出: Book: Design Patterns, Author: Erich Gamma et al., Price: 29.99
在这个例子中,Book类有三个属性:title、author和price。price属性被赋予了默认值0.0,这意味着如果我们在初始化时不提供price值,它将自动使用这个默认值。我们还可以为Book类提供一个初始化器,允许在创建Book对象时指定所有属性的值。
通过这种方式,我们可以确保每个Book对象都有必要的信息,同时也为开发者提供了灵活性,让他们可以选择是否为price提供值。
