繁体   English   中英

如何使用 Swift 在结构中打印方法的 output?

[英]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())
}

structclass的顶层,您只能定义函数和属性。 例如,您的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM