gpt4 book ai didi

Swift 函数别名

转载 作者:IT王子 更新时间:2023-10-29 05:33:52 27 4
gpt4 key购买 nike

如何在 swift 中为函数创建别名?

例如

我要打电话

LocalizedString("key")

它应该调用

NSLocalizedString("key", comment:"")

我看到了 typealias 命令,但它看起来只适用于类型。

最佳答案

函数被命名为闭包,因此您可以将函数分配给变量:

let LocalizedString = NSLocalizedString

您也可以为类/结构方法创建伪别名。每个方法实际上是一个静态(类)柯里化(Currying)函数,以类实例作为其第一个参数。所以给定一个类:

class MyClass {
var data: Int

init(data: Int) {
self.data = data
}

func test() {
println("\(data)")
}
}

您可以将test 方法分配给一个变量:

let test = MyClass.test

然后将其调用为:

var instance = MyClass(data: 10)
test(instance)()

更新

我刚刚意识到我错过了您问题中的一个重要细节:您想要隐藏 comment 参数。我提出的解决方案不允许这样做,而@rintaro 的解决方案允许这样做。

但是我为此使用了不同的方法:我创建了一个实现计算属性的 String 扩展:

extension String {
var localized: String {
return NSLocalizedString(self, comment: "")
}
}

然后我可以在任何字符串变量或文字上调用它:

var string = "test_resource"
string.localized

"another_resource".localized

关于Swift 函数别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27172447/

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