函数返回 Optional("String")

Function returning Optional("String")

我有这个函数接受双精度值,将其转换为货币格式和 return 格式为 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)

它returns:

Optional("R.200,30")

我不知道我需要做什么,因为它不是可选的,我不能使用感叹号来打开可选的。 我试图将函数中的 Double 和 String 参数转换为 Optional 然后解包,但是 Optional 仍然显示。

它不是 return Optional("R.200,30"),它 return 是 "Optional("R.200,30")"。那里有细微的差别;注意 "。发生的事情是 formatter.stringFromNumber(valor) returns String?,您使用 "\(...)" 将其放入 String。相反,你应该 return formatter.stringFromNumber(valor)!,在这里强制展开是可以的,因为你知道输入是一个数字。