我不知道如何使它们加或减,它有一种方法可以做到这一点。基本上我想要1“+”3 = 4但我得到1 + 3

时间:2017-02-15 06:29:28

标签: ios swift swift3 concatenation

let randsign = Int(arc4random_uniform(2) + 1)

//This function returns a random operator
func whatSign(par1:Int)-> String {

    if (par1 == 1){
        return "+"

    }
    else {
        return "-"
    }

}

var sigh = whatSign(par1: randsign)

let randnum1:Any = Int (arc4random_uniform(10) + 1)
let randnum2:Int = Int (arc4random_uniform(10) + 1)

//我希望变量“finVal”执行数学运算,但它不是因为变量“sign”是String

let finVal = "\(randnum1)\(sigh)\(randnum2)"
print(finVal)   

//When I print I get for example 1-3, 9-4, 8+2 .But I wanted them to do arithmetic 

2 个答案:

答案 0 :(得分:3)

NSExpression是评估数学的好方法之一

let finVal = "(randnum1)(sigh)(randnum2)" 
let result = NSExpression(format: finVal).expressionValue(with: nil, context: nil) as! Int

答案 1 :(得分:0)

let randsign = Int(arc4random_uniform(2) + 1)
let randnum1:Any = Int (arc4random_uniform(10) + 1)
let randnum2:Int = Int (arc4random_uniform(10) + 1)
var finVal:Int
//This function returns a random operator
func whatSign(par1:Int)-> String {
//I want to compute the variables and get final result from adding or subtracting them
if (par1 == 1){
 finVal = randnum1 + randnum2
    return "+"

}
else {
 finVal = randnum1 - randnum2
    return "-"
}

}

whatSign(par1: randsign)


print(finVal) 
//When I print I get for example 1-3, 9-4, 8+2 .But I wanted them to do arithmetic 

也许它会帮助你