为什么带保护语句的Swift函数无法正确编译? [关闭]

问题描述 投票:-5回答:1

我正在为此测验问题苦苦挣扎,因为该代码无法编译。有人可以帮助我解决这个Swift测验问题吗?

struct Dog {
    let name: String
    let owner: String?
} 

let stray = "No known owner" 

func createDog(dict: [String:String]) -> Dog? {
    guard let name = dict["name"] else { return nil }
    let owner = dict["owner"]
    return Dog(name: name, owner: owner)
}

let myDog = createDog(["name":"Indi"])

以下哪项最能描述myDog?

A)。 myDog将被创建,但其值为nil。

B)。 myDog将具有“名称”,“ Indi”和“所有者”为零。

C)。 myDog将具有“名称”,“ Indi”和“所有者”,“ Stray”。

D)。 myDog将永远不会创建,因为代码将崩溃。

因为此代码在我的X代码中引发了很多错误,所以我选择了D,但担心我的答案是错误的,请另请谅解。谢谢

抓取我的X代码中编译的确切代码的屏幕截图“此处是指向在我的X代码中编译的确切代码的屏幕抓取的链接

swift func guard
1个回答
0
投票

您在通话中缺少参数标签'dict:'。如果通过了那么你并没有通过dic的所有者,那时它将为零。选择选项B

© www.soinside.com 2019 - 2024. All rights reserved.