编辑:什么是What is the equivalent for java interfaces or objective c protocols in swift?和这个问题有什么不同?我读的话题Java接口相当于斯威夫特
后,我还以为是使用一个类来扩展协议的选项,我试图创建协议本身没有成功,但邓肯C.说这是不可能的直接初始化协议类型,我必须用另一个类来扩展它。我有一个Java类,我拥有一个接口数组,我可以循环访问该数组,并调用doWork()函数,直到其中一个返回true。我想在Swift中实现相同的功能。
我的java类:
class MyClass{
//create a variable that holds all of my engines
private MyEngine[] myEngines = new MyEngine[]{
new MyEngine(){
@Override
public boolean doWork(){
return doWork1();
}
},
new MyEngine(){
@Override
public boolean doWork(){
return doWork2();
}
},
new MyEngine(){
@Override
public boolean doWork(){
return doWork3();
}
}
}
//loop through all engines until one of them succeed
public boolean doWorkUntilSuccess(){
for(int i = 0; i < myEngines.length; i++){
if(myEngines[i].doWork())
return true;
}
return false;
}
private boolean doWork1(){
//code
return result;
}
private boolean doWork2(){
//code
return result;
}
private boolean doWork3(){
//code
return result;
}
interface MyEngine{
boolean doWork();
}
}
如果您要求某人将您的Java代码翻译成Swift而未显示您迄今为止所做的工作,则可能会得到负面投票。 –