微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift中的多行语句

我正在研究 Swift教程,发现 Swift有一种奇怪的方式来处理多行语句.

首先,我定义了标准String类的一些扩展:

extension String {
    func replace(target: String,withString: String) -> String {
        return self.stringByReplacingOccurrencesOfString(target,withString: withString)
    }

    func toLowercase() -> String {
        return self.lowercaseString
    }
}

这按预期工作:

let str = "HELLO WORLD"
let s1 = str.lowercaseString.replace("hello",withString: "goodbye") // -> goodbye world

这不起作用:

let s2 = str
            .lowercaseString
            .replace("hello",withString: "goodbye")
// Error: Could not find member 'lowercaseString'

如果我用函数调用替换对lowercaseString属性的引用,它再次起作用:

let s3 = str
            .toLowercase()
            .replace("hello",withString: "goodbye") // -> goodbye world

Swift语言规范中是否有任何内容可以防止将属性划分为自己的行?

代码Swift Stub.

解决方法

这绝对是一个编译器错误.问题已在Xcode 7 beta 3中得到解决.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐