如何使用 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())
}
在 struct
或 class
的顶层,您只能定义函数和属性。例如,您的 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)
我对编程还很陌生 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())
}
在 struct
或 class
的顶层,您只能定义函数和属性。例如,您的 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)