如何使用 Swift 打印结构中方法的输出?

How to print output of method in a struct with Swift?

我对编程还很陌生 Swift。为什么 getDetails 函数底部的简单 print(getDetails()) 不足以获取输出?它总是 returns 一个错误“在函数声明的主体中预期'{'”。

这是代码...

struct Car {
    let make:String = "MINI"
    let model:String = "COOPER"
    let year:String = "2015"
    
    var details:String {
        return year + " " + make + " " + model
    }
    func getDetails() -> String {
        return details
    }
    print(getDetails())
}

structclass 的顶层,您只能定义函数和属性。例如,您的 let make:String = "MINI"func getDetails() -> String { ... } 是有效的顶级声明。

但是,不允许将未定义函数或 属性(如 print(""))的命令式代码放在此类类型的顶层。

如果您在 Swift 操场上,您可以将命令式代码放在文件的顶层(而不是结构或 class)。所以,这将是有效的:

struct Car {
    let make:String = "MINI"
    let model:String = "COOPER"
    let year:String = "2015"
    
    var details:String {
        return year + " " + make + " " + model
    }
    func getDetails() -> String {
        return details
    }
}

let myCar = Car()
print(myCar.getDetails())

由于 getDetails 所做的只是 return details,这有点多余,所以我们可以重构为:

struct Car {
    let make:String = "MINI"
    let model:String = "COOPER"
    let year:String = "2015"
    
    var details:String {
        return year + " " + make + " " + model
    }
}

let myCar = Car()
print(myCar.details)