我有一个名为Person的Swift类,它有三个值:名字,姓氏和生日(String
,String
和NSDate
)。现在我有一个功能,我想用它来打印基于属性的东西 - 例如当属性为myPerson.name
时,它应该打印以下内容:This person's name is ...
。我的问题是现在是否可以创建一个以Person类参数作为参数的函数?例如:func myFunction(parameter:Person.parameter) {}
(我知道没有Person.parameter但它只是一个例子)。
我知道有更简单的解决方案,但对我来说对另一个项目有帮助。提前谢谢。
答案 0 :(得分:1)
你可以创建一个新的属性名称并覆盖它的getter以返回'此人的名字是......'文字,
class Person{
let firstName: String
let lastName: String
init(firstName: String, lastName: String) {
self.firstName = firstName
self.lastName = lastName
}
var name: String {
get {
return "This person's name is \(firstName) \(lastName)"
}
}
}
let person = Person(firstName: "Sandeep", lastName: "Koirala")
person.name
关于这个函数,你可以创建一个新的函数,它将Person作为对象,然后像这样对它的属性进行一些计算,
func printPersonsName(person: Person) {
print(person.name)
}