You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何打印结构体方法的输出?print调用报错如何解决?

报错原因

Swift 中类、结构体、枚举的定义作用域内,仅允许声明属性、方法、构造器、下标、嵌套类型这几类成员,不支持直接编写执行语句。你写的print(getDetails())属于执行代码,不能直接放在结构体内、任意方法之外的位置,编译器识别到这行不符合成员声明规则,会误判为你要定义一个新函数,因此抛出「Expected '{' in body of function declaration」的错误。

正确实现方案

你可以选择以下任意一种方式实现打印需求:

  • 方案1:将打印逻辑封装为结构体的成员方法,实例化后调用
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
    }
    // 封装打印逻辑为成员方法
    func logDetails() {
        print(getDetails())
    }
}
// 实例化后调用方法执行打印
let myCar = Car()
myCar.logDetails()
  • 方案2:在结构体外部的可执行作用域,实例化后直接调用方法打印
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())

内容的提问来源于stack exchange,提问作者LukasDreams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 16:15:04