我一直在想,是否可以将值存储为结构本身。
请考虑以下代码:
struct Carplate {
var value: String
init (_ carplate: String) {
value = carplate
}
//some other functions
}
要访问该值,您需要执行以下操作:
let carplate = Carplate("ABC 1234")
print(carplate.value)
而不是:
print (carplate)
有没有办法让我设计我的结构来实现这一点,也许像是来自python的 repr ?
我看到标准库中的结构能够做到这一点
let string = String("ABCDEF")
print (string)
对他们来说这是一种特殊的能力吗?
编辑:
如果我愿意这样做:
struct Carplates {
var value: [String]
init (_ carplates: [String]) {
value = carplates
}
//some other functions
}
并在另一个函数中使用它:
let carplates = Carplates(["ABC 1234", "ABE 5678"])
if (carplates.value.count > 5) {
// some functions
}
我有什么方法可以做到这一点吗?:
if (carplates.count > 5) {
// some functions
}
答案 0 :(得分:1)
您可以尝试遵守CustomStringConvertible
协议并在description
struct Carplate : CustomStringConvertible
{
var description: String
{
return value
}
var value:String
init(_ carplate:String) {
self.value = carplate
}
}
答案 1 :(得分:1)
采用CustomStringConvertible。
struct Carplate : CustomStringConvertible {
var description: String { return value }
var value: String
init (_ carplate: String) {
value = carplate
}
}
let carplate = Carplate("ABC 1234")
print(carplate) // ABC 1234