我的第一个猜测是 debugDescription
或 description
,但是使用 NSURL,我得到了一些有趣的东西:
$ cd /tmp
$ xcrun swift
Welcome to Apple Swift version 2.2 (swiftlang-703.0.18.8 clang-703.0.30). Type :help for assistance.
1> import Foundation
2> NSURL(fileURLWithPath: "X")
$R0: NSURL = "X -- ile:///private/tmp/"
它不是debugDescription
或description
:
3> NSURL(fileURLWithPath: "X").debugDescription
$R1: String = "X -- file:///private/tmp/"
4> NSURL(fileURLWithPath: "X").description
$R2: String = "X -- file:///private/tmp/"
显然,如果您只是定义 debugDescription
和 description
(如 class Foo
here ),它不会打印那些. (它将它们用于 print()
和 debugPrint()
。)
默认情况下,它在 repl 中打印什么?
最佳答案
REPL 是 lldb 的扩展。因此,对于类和结构,它在评估后打印类型摘要。您可以找到更多相关信息 here .
您可以为类(class)创建自定义类型摘要。例如,我可以输入:
class MyClass: NSObject
{
}
let myClass = MyClass()
进入 REPL,打印:
myClass: MyClass = {
ObjectiveC.NSObject = {
isa = __lldb_expr_45.MyClass
}
}
然后我可以通过键入 进入 lldb:
在 lldb 中,我可以将 MyClass
绑定(bind)到自定义类型摘要,方法是:
type summary add --summary-string "This is a MyClass" MyClass
我可以通过键入命令返回到 REPL:repl
现在,当我说 let myClass = MyClass(),
我得到:
myClass: MyClass = This is a MyClass
关于swift - "xcrun swift"用于结果的方法/属性是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38856765/