我找到了以下解决方案,在函数的参数中执行一个简单的'if ... then ... else'。它正在工作,但我很确定在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
}
答案 0 :(得分: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 :(得分: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
}