Swift REPL中Python的dir()和help()等效项

时间:2018-12-20 14:49:51

标签: swift lldb

只需在Ubuntu上安装Swift,就感到惊讶的是,执行swift运行的是一种语言外壳程序(又称REPL),类似于Python的交互式外壳程序。

要感受一下我刚接触的Swift语言,我想声明一些对象并查看它们提供了哪些方法。在Python中,这是通过内置函数dir(object)实现的,该函数返回对象属性的名称。如果不带参数调用它,它将返回当前本地作用域中的变量和模块名称的列表。 –这两种行为在Shell中都非常有用。

Python shell还具有一个非常有用的help()函数,该函数调用内置的帮助系统。通过调用help(object),您可以读取对象类上的Python参考。

Swift REPL中是否有Python的等效help()和dir()?

更具体地说:

  • 我可以获取当前声明的变量的列表吗?
  • 我可以在shell(REPL)中看到对象方法的列表吗?
  • 我可以在外壳中读取对象引用吗?

(如果有帮助,我有Swift版本4.2.1,LLDB版本6.0.0)

1 个答案:

答案 0 :(得分:1)

Swift没有类似help()的方法,但是您可以使用lldb命令。 您可以在Swift REPL中输入:,以使Shell切换到LLDB模式。

  

我可以在外壳程序(REPL)中看到对象方法的列表吗?
  type lookup ClassNameOfInstance

     

我可以获取当前声明的变量列表吗?
  image lookup -rs lldb_expr

     

我可以在外壳中读取对象引用吗?
  expression -l swift -- instanceName

使用c命令退出LLDB模式。

添加:

  • 在Swift REPL中定义变量时,Swift Repl会分别为每个模块创建$__lldb_expr2$__lldb_expr3等模块。

  • 如果您想了解lldb命令,可以在lldb模式下使用help命令。