Aar*_*ron 8 printing swift swift2
在Swift 2.0中,每当在该对象上调用print 时,我都会尝试让我的类Digit显示num变量.我认为这可能是用描述变量完成的,但没有运气.
class Digit {
var num: Int
var x: Int
var y: Int
var box: Int
var hintList: [Int] = []
var guess: Bool = false
var description: String {
let string = String(num)
return string
}
}
Run Code Online (Sandbox Code Playgroud)
Mic*_*lum 15
仅添加description变量是不够的.您还需要声明您的类符合CustomStringConvertible(以前称为Printable早期的Swift版本).
如果您单击该print功能,则会找到以下说明.
将文本表示
value和可选换行符写入标准输出.文本表示从得到的
value使用其的协议符合项,按优先顺序如下:Streamable,CustomStringConvertible,CustomDebugStringConvertible.如果未找到这些一致性,则基于类型类型和结构,以实现定义的方式构造默认文本表示.
这里重要的部分是传递给它的对象print不会检查它们是否有description方法,而是检查是否符合CustomStringConvertible提供数据的协议.
话虽这么说,在这种情况下您需要做的就是指定您的类符合,CustomStringConvertible因为您已经添加了一个description变量.如果你还没有添加它,编译器会抱怨,因为这个协议要求description实现变量.
class Digit: CustomStringConvertible {
var num: Int
var x: Int
var y: Int
var box: Int
var hintList: [Int] = []
var guess: Bool = false
var description: String {
let string = String(num)
return string
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3258 次 |
| 最近记录: |