gpt4 book ai didi

swift - 为什么这个基本类型扩展不起作用?

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

尝试使用扩展,但在使以下功能正常工作时遇到问题:

let value = -13
abs(value)

extension Int {
var abs:Int {
return abs(self) // -> Cannot invoke 'abs' with an argument list of type '(Int)'
}
}

value.abs

编译错误很奇怪,因为它明显地以 Int 作为参数直接运行上面的 abs() 函数。我猜我还有一些灯泡可以触发泛型。启发我。

最佳答案

Swift 编译器会混淆您将 abs 变量用作函数,它不能这样做。现在您可以查看所有答案并重命名您的变量,但这些并不能深入了解 Swift 函数的工作原理。

Swift 自动导入 Swift 框架,它定义了它的静态函数。要使用这些函数,您通常不需要指定它来自框架,但在这种情况下,您应该指定您要使用 Swift abs 方法框架。

所以在所有的解释之后,这是你的代码,它可以工作:

let value = -13
abs(value)

extension Int {
var abs: Int {
return Swift.abs(self)
}
}

value.abs

关于swift - 为什么这个基本类型扩展不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30064138/

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