Python Swift-如何为类定义一个特殊方法,该方法返回其对象的字符串表示形式
在python中,如果要定义对象的字符串表示形式,可以执行以下操作:Python Swift-如何为类定义一个特殊方法,该方法返回其对象的字符串表示形式,python,swift,syntactic-sugar,Python,Swift,Syntactic Sugar,在python中,如果要定义对象的字符串表示形式,可以执行以下操作: 班级人员: 定义初始(自我、第一、最后、年龄): self.first=第一 self.last=last self.age=年龄 定义(自我): 返回f'{self.first}{self.last},{self.age}岁' person_1=person('John','Smith',25岁) 现在,如果你写print(person\u 1)或str(person\u 1),你就会得到John Smith,25岁 如果
班级人员:
定义初始(自我、第一、最后、年龄):
self.first=第一
self.last=last
self.age=年龄
定义(自我):
返回f'{self.first}{self.last},{self.age}岁'
person_1=person('John','Smith',25岁)
现在,如果你写print(person\u 1)
或str(person\u 1)
,你就会得到John Smith,25岁
如果\uuu str\uuu
方法不存在,那么输出将是
如何在swift中执行相同的操作?
当然,我可以用我想要的任何名称定义一个方法,然后在对象上调用它,但它缺少语法上的糖分。只需遵循CustomStringConvertible
协议即可。您所要做的就是实现description
属性
struct Person: CustomStringConvertible {
let name: String
let age: Int
var description: String {
return "[name: \(name), age: \(age)]"
}
}
print(Person(name: "bob", age: 32)) // [name: bob, age: 32]
只需遵守CustomStringConvertible
协议即可。您所要做的就是实现description
属性
struct Person: CustomStringConvertible {
let name: String
let age: Int
var description: String {
return "[name: \(name), age: \(age)]"
}
}
print(Person(name: "bob", age: 32)) // [name: bob, age: 32]
使您的类/结构符合CustomStringConverable协议。这应该可以满足你的需要。我是swift新手,以前从未使用过协议。你能告诉我怎么做吗?当然可以。请参见下文使您的类/结构符合CustomStringConverable协议。这应该可以满足你的需要。我是swift新手,以前从未使用过协议。你能告诉我怎么做吗?当然可以。见下文