函数返回可选(“字符串”)

时间:2015-06-03 14:58:25

标签: swift optional

我有这个函数接受Double值,将其转换为货币格式并返回格式为R $的字符串:1.200,30。

func convert_Value(valor: Double) ->String {
    let formatter = NSNumberFormatter()
    formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
    formatter.locale = NSLocale(localeIdentifier: "pt_BR")
    return ("\(formatter.stringFromNumber(valor))")
}

此函数没有声明任何可选变量,但是当我使用:

调用它时
x = convert_Value(1200.30)

它返回:

Optional("R$1.200,30")

我无法弄清楚我需要做什么,因为它不是可选的我不能使用惊叹号打开可选项。 我试图将函数中的Double和String参数设置为Optional然后解包,但显示可选的静止图像。

1 个答案:

答案 0 :(得分:6)

它不会返回Optional("R$1.200,30"),而是返回"Optional("R$1.200,30")"。那里有一个微妙的区别;注意"。发生了什么formatter.stringFromNumber(valor)返回String?,您使用String放入"\(...)"。相反,你应该返回formatter.stringFromNumber(valor)!,强制解包这里是可以的,因为你知道输入是一个数字。