2016-01-09 38 views
1

我發現下面的解決方案在函數的參數中執行簡單的'if ... then ... else'。它正在工作,但我確信在Swift中有更乾淨的方法來做到這一點。Swift執行簡單的測試並將結果傳遞給函數的參數

我在想,如果使用封閉的可能是這裏的解決方案,但語法和封閉的邏輯並不明顯,我還沒有。在學習這部分語言之前,有人能告訴我它是否確實能讓我有一種更簡潔的方式來實現這個簡單的需求?

var tTexteSplitted: Array<String> = ["A", "B", "C"] 

for (Index, Texte) in tTexteSplitted.enumerate() 
{ 
    SomeFunction(Texte, TestValue((Index == 0), ReturnTrue: "SomeString", ReturnFalse: "AnotherString")) 
} 

func TestValue(Test: Bool, ReturnTrue: String, ReturnFalse: String) -> String 
{ 
    if Test { return ReturnTrue } else { return ReturnFalse } 
} 

func SomeFunction(Param1: String, Param2: String) 
{ 
    // Do something with Param1 and Param2 
} 

回答

1

尚不清楚閉合這裏需要:

var tTexteSplitted: Array<String> = ["A", "B", "C"] 

for (Index, Texte) in tTexteSplitted.enumerate() 
{ 
    SomeFunction(Texte, Index == 0 ? "SomeString" : "AnotherString") 
} 

func SomeFunction(Param1: String, Param2: String) 
{ 
    // Do something with Param1 and Param2 
} 
+1

呃......你是最快的......金牌! – jbegood

1

ternary conditional operator?:是要走的路。使用它如下:

var tTexteSplitted = ["A", "B", "C"] 

for (Index, Texte) in tTexteSplitted.enumerate() 
{ 
    SomeFunction(Texte, Index == 0 ? "SomeString" : "AnotherString") 
} 

func SomeFunction(Param1: String, Param2: String) 
{ 
    // Do something with Param1 and Param2 
} 
+0

謝謝......銀牌;-) – jbegood

相關問題