[英]How to print output of method in a struct with Swift?
我是编程和 Swift 的新手。为什么 getDetails function 底部的简单 print(getDetails()) 不足以获取 output? 它总是返回错误“在 function 声明的正文中预期为‘{’”。
这是代码...
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 的操场上,你可以将命令式代码放在文件的顶层(不是结构体或类)。 所以,这将是有效的:
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
所做的只是返回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)
import UIKit
import Foundation
struct Car {
private var make = "Toyota"
private var model = "Camry"
private var year = "1999"
private var details:String {
year + " " + make + " " + model
}
func getDetails () -> String {
return details
}
}
let a:Car = Car()
print (a.getDetails())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.