gpt4 book ai didi

swift - 从方法返回可选值

转载 作者:行者123 更新时间:2023-11-28 05:35:12 26 4
gpt4 key购买 nike

我有一组基本的结构,包括定义车库的 Garage 结构、封装硬编码车库列表的 Garages 类,以及 >Car 类,根据制造商字符串搜索车库。

我的问题是 Car.findGarageByManufacturer 需要有选择地返回一个 Garage 实例(如果找不到则返回 nil)。` 但是我收到以下错误:

可选类型“车库”的值?未展开;你是不是想用'!'或者 '?' ?

...在线return foundGarage

如何在方法内部返回可选值?

// Using a struct because an 'Object' type doesn't seem to exist :-/
struct Garage {
var name: String
var manu: String
}

// Hardcorded set of garages, using class to test returning an array of a struct instance.
class Garages {
func getGarages() -> Array<Garage> {
var garages: Garage[] = [
Garage(name: "VW Car Park", manu: "VW"),
Garage(name: "Williams BMW", manu: "BMW"),
Garage(name: "Hadwins", manu: "VW")
]
return garages;
}
}

// Immediately create an instance of the Garages class
let garages = Garages()

class Car {
func findGarageByManufacturer(manufacturer: String) -> Garage {
var foundGarage: Garage? = nil
for garage in garages.getGarages() {
if(garage.manu == manufacturer) {
foundGarage = garage
}
}
// This is the line that's causing an error
// How do we optionally return a garage?
return foundGarage
}
}

最佳答案

func findGarageByManufacturer(manufacturer: String) -> Garage

必须是

func findGarageByManufacturer(manufacturer: String) -> Garage?

(注意问号)

关于swift - 从方法返回可选值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24037827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com