2016-01-09 32 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

相关问题