Swift 3.0 预告 - 更符合 Swift 风格的调试标识
jopen 8年前
<p>Swift 3 进行了一系列改进,其中包括调试的改造,让它们更加符合 Swift 语言风格。我们来一探究竟吧。</p> <h2>什么是调试标识</h2> <p>所谓调试标识,就是在 Swift 当前版本中,还沿用了这种形式的符号,比如 - <code>__FILE__</code> 和 <code>__FUNCTION__</code> 。 这些符号是 C 和 Objc 中遗留下来的标识。 在 Swift 3 中就会把这些符号替换成井号开头的这种形式 <code>#identifier</code> 。</p> <p>补充一下 <code>__FILE__</code> 和 <code>__FUNCTION__</code> 的含义,它们分别代表当前所在的文件名和函数名,它们是在预处理过程中被编译器替换成相应的字面量。</p> <p><code>__FILE__</code> 和 <code>__FUNCTION__</code> 都是源于 C 语言的预处理宏。 而 Swift 也支持同样的功能,并且一直沿用了这种命名方式。 但它的语法风格和 Swift 差别很大。也会造成语法的不一致。 所以 Swift 3.0 着力解决这个问题。这个改造源于编号为 <a href="/misc/goto?guid=4958990273367023573" rel="nofollow,noindex">SE-0028</a> 的提案。</p> <p>并且这个提案中还有一句很有意思的话:“这个提案主要为了打破历史原因遗留下来的命名问题,这种遗留的命名方式看起来就像是一只蟒蛇正在消化它刚吞下的食物那样”。 并且还附上了一张图:</p> <p><img alt="Swift 3.0 预告 - 更符合 Swift 风格的调试标识" src="https://simg.open-open.com/show/59eaee788c31463b70e6e3d4fca5508f.jpg" /></p> <p>联想一下这两个标识符 <code>__FILE__</code> 和 <code>__FUNCTION__</code> ,好像还真的有点像哈~</p> <h2>修改内容</h2> <p>那么,这个提案中都会涉及到哪些标识符呢? 列出如下:</p> <ul> <li><code>__FILE__</code> -> <code>#file</code></li> <li><code>__LINE__</code> -> <code>#line</code></li> <li><code>__COLUMN__</code> -> <code>#column</code></li> <li><code>__FUNCTION__</code> -> <code>#function</code></li> <li><code>__DSO_HANDLE__</code> -> <code>#dsohandle</code></li> </ul> <p>所以,在 Swift 3.0 后,整个语法会变得更加统一,也可以看到核心团队这次下了很大力度在统一语言规范上面。</p> <p>来自: http://www.swiftcafe.io/2016/05/10/swift3-identifier/</p>