Swift Closure to String

时间:2015-08-12 12:59:31

标签: string swift closures

是否可以在Swift中在运行时解析闭包作为字符串?例如:

let y = 5
let myClosure = { (x: Double) -> Double in
    return x * 2 + y
}

应该给我"x * 2 + 5"(例如函数调用closureToString(myClosure))。可以这样做吗?顺便说一句,我的意思是在运行时,因为y可以从命令行中读取。例如。

我认为不可能,只是寻找确认^^谢谢;)

2 个答案:

答案 0 :(得分:2)

为什么在功能中需要它?你不能做这样的事吗?

let y = 5
let myClosure = { (x: Double) -> Double in
    println("x * 2 + \(y), x = \(x)")
    return x * 2 + y
}

答案 1 :(得分:2)

// Im assuming y is a parameter along with x if not remove it .
// Im returning tuples to access both stringValue and DoubleValue
    let myClosure = { (x: Double, y:Double) -> (DoubleValue: Double, StringValue:String) in
        return (x * 2 + y,"\(x) * 2 + \(y)")
    }


let MyClosureResult = myClosure(2,8)
// to accessString Value
MyClosureResult.StringValue
// to access DoubleValue 
MyClosureResult.DoubleValue