gpt4 book ai didi

Swift "with"关键字

转载 作者:搜寻专家 更新时间:2023-10-30 22:22:13 27 4
gpt4 key购买 nike

Swift 中“with”关键字的用途是什么?到目前为止,我发现如果您需要覆盖现有的全局函数,例如 toDebugString,可以使用该关键字。

    // without "with" you get "Ambiguous use of 'toDebugString'" error
func toDebugString<T>(with x: T) -> String

{
return ""
}

toDebugString("t")

最佳答案

with 不是关键字 - 它只是一个外部参数标识符。这也适用:

func toDebugString<T>(whatever x: T) -> String

toDebugString<T>(x: T)函数已经定义,通过使用外部参数您正在创建一个重载:相同的函数名称,但不同的参数。在这种情况下,参数是相同的,但用一个外部名称标识,并且在 swift 中这使它成为一个具有不同签名的方法,因此是一个重载。

为了证明这一点,将其粘贴到 playground 中:

func toDebugString<T>(# x: T) -> String {
return "overload"
}

toDebugString(x: "t") // Prints "overload"
toDebugString("t") // Prints "t"

第一个调用您的重载实现,而第二个使用现有函数

推荐阅读:Function Parameter Names

关于Swift "with"关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25583477/

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