gpt4 book ai didi

java - Swift:在初始化期间覆盖函数(请参阅我在 Java 示例中的意思)

转载 作者:行者123 更新时间:2023-11-30 13:11:29 26 4
gpt4 key购买 nike

在 Java 中,假设我们有一个名为 Card 的类。这个类有一个方法 getAction() 并返回一个 Action 类的对象。

我知道可以在初始化期间覆盖此方法。像这样:

Card card = new Card() { 
@Override
public Action getCard() {
return Action...
}
}

我的问题是,您是否可以用 Swift 语言执行此操作,或者您是否只需要为方法的每个不同重写创建一个类?

最佳答案

您在 Java 中所指的称为 anonymous inner class - 您实际上是在内联声明一个一次性派生类。

不幸的是Swift没有这个功能。

但是您可以考虑将闭包传递给实例。

假设您的 Card 类有一个 var getCardFunction:

Class Card {
var getCardFunction : () -> Int
}

现在你可以在初始化后传递你想要的函数:

var card = Card()
card.getCardFunction = {
return 6
}

注意:您甚至可以为 getCardFunction 函数设置默认值:

Class Card {
var getCardFunction : () -> Int = {
return 3
}
}

关于java - Swift:在初始化期间覆盖函数(请参阅我在 Java 示例中的意思),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38676606/

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