Swift执行一个简单的测试并将结果传递给函数的参数

时间:2016-01-09 18:41:41

标签: swift function if-statement closures conditional-statements

我找到了以下解决方案,在函数的参数中执行一个简单的'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
}

2 个答案:

答案 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
}