Swift中的行控制语句

yqlxgs2m  于 5个月前  发布在  Swift
关注(0)|答案(2)|浏览(71)

我正在从苹果文档中阅读Swift,并学习语句。但找不到任何关于行控制语句的信息。
根据文件
行控制语句用于指定行号和文件名,可以与正在编译的源代码的行号和文件名不同。使用行控制语句更改Swift用于诊断和调试目的的源代码位置。
生产线控制语句具有以下形式:

#sourceLocation(file: filename, line: line number)
#sourceLocation()

字符串
我的问题是我应该什么时候使用它?文档后面有一个关于这个主题的例子。任何链接或一些提示都会有帮助。

nnt7mjpx

nnt7mjpx1#

这不是你作为初学者所需要的东西,你可能会在整个职业生涯中都不使用它。它似乎是用来生成源代码的工具。请参阅original feature proposal中的评论以了解完整的故事。

**TL/DR:**别担心,你永远不会需要它。

imzjd6km

imzjd6km2#

不幸的是,#sourceLocation严重降低了它的实用性,因为它只接受file的字符串文字和line的整数文字。在对SE-0034的修订讨论中,建议#sourceLocation“is not a widely visible end-user feature”
我真的希望它接受一个正常的字符串和整数值(例如,我可以捕获#file#line,并将其传递给#sourceLocation)。这将非常有用。例如,Xcode 15有一个功能,可以让您从控制台中的OSLogLogger消息跳转到项目中的一行代码,这个特性是为了纪念#sourceLocation。现在,我所有的日志记录消息都把我带到了我的日志记录实用程序库,而不是原始日志记录消息的#file#line。一个浪费的机会,恕我直言。
总之,由于实现不灵活,#sourceLocation的实用性非常有限。

相关问题