gpt4 book ai didi

swift - unnamed parameters must be written with the empty name '_'是什么意思?

转载 作者:搜寻专家 更新时间:2023-11-01 06:15:58 26 4
gpt4 key购买 nike

我正在通过一本书学习 Swift,我们正在使用 Playgrounds 构建一个类。我收到一条错误消息:未命名的参数必须使用空名称“_”写入。

我理解 Swift 中的下划线表示“忽略”,但如果我添加下划线后跟空格,则会收到错误消息:Parameter requires an explicit type which is first easy to understand, meaning that a parameter must be declared as某种类型。 :)

我想确切地知道“未命名参数必须用空名称‘_’写入”这个错误到底是什么意思,因为它对像我这样的菜鸟来说意义不大。

这是到目前为止 playground 中的代码:

//: Playground - noun: a place where people can play

import UIKit

var str = "Hello, playground"

func fahrenheitToCelsius(fahrenheitValue: Double)-> Double {

var result: Double

result = (((fahrenheitValue - 32) * 5) / 9)

return result
}

var x = fahrenheitToCelsius(fahrenheitValue: 15.3)

print(x)





class Door{

var opened: Bool = false
var locked: Bool = false
let width: Int = 32
let height: Int = 72
let weight: Int = 10
let color: String = "Red"

//behaviors
func open(_ Void)->String{
opened = true
return "C-r-r-e-e-a-k-k-k...the door is open!"
}

func close(_ Void)->String{
opened = false
return "C-r-r-e-e-a-k-k-k...the door is closed!"
}

func lock(_ Void)->String{
locked = true
return "C-l-i-c-c-c-k-k...the door is locked!"
}

func unlock(_ Void)->String{
locked = false
return "C-l-i-c-c-c-k-k...the door is unlocked!"
}

}

最佳答案

我猜,你的代码是这样的,当你得到unnamed parameters must be written with the empty name '_'

func open(Void)->String{
opened = true
return "C-r-r-e-e-a-k-k-k...the door is open!"
}

看来您是一位经验丰富的 C 程序员。

在 Swift 中,单参数函数(包括方法)应该有这样的头部:

func functionName(paramLabel paramName: ParamType) -> ResultType

paramLabelparamName相同时,可以这样:

func functionName(paramName: ParamType) -> ResultType

您可以对 paramLabelparamName 使用 _,所以这是 Swift 中的有效函数头,当单个参数应该是传递给函数并且不在函数体内使用:

func functionName(_: ParamType) -> ResultType

但是在旧的 Swift 中,你可以在相同的情况下写这样的东西:

func functionName(ParamType) -> ResultType

这在当前 Swift 中不是有效的函数头。因此,当 Swift 编译器找到此类函数头时,它会生成一条诊断消息,例如:unnamed parameters must be written with the empty name '_' 这表明您需要_:ParamType 之前。


您需要的实际修复包含在 Lawliet 的回答中。当您的函数不带参数时,您无需将 Void 放入参数中。

func open()->String{
opened = true
return "C-r-r-e-e-a-k-k-k...the door is open!"
}

关于swift - unnamed parameters must be written with the empty name '_'是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45022976/

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