Swift,多行@autoclosure

时间:2020-09-04 09:41:03

标签: swift

@autoclosure是否仅允许单行代码?示例2和3编译时出错

   class Test {
        typealias TestConstructor = () -> AnyObject
        let constructor: () -> TestConstructor
        init(_ constructor: @escaping () -> TestConstructor) {
            self.constructor = constructor
        }
        init(_ constructor: @autoclosure @escaping () -> TestConstructor) {
            self.constructor = constructor
        }
    
        func executeTest() { }
    }
    
    class CustomObject {
        var title: String
        var message: String
        init(title: String) {
           self.title = title
        }
    }

//示例1:不使用@autoclosure的init

Test({
let object = CustomObject(title: "")
object.message = ""
}.executeTest())

//示例2:使用@autoclosure初始化

Test(
let object = CustomObject(title: "")
object.message = "").executeTest()

//示例3:使用@autoclosure和行分隔符进行初始化

Test(let object = CustomObject(title: ""); object.message = "").executeTest()

0 个答案:

没有答案