編輯:什麼是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而未顯示您迄今爲止所做的工作,則可能會得到負面投票。 –