函数返回 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)!
,在这里强制展开是可以的,因为你知道输入是一个数字。
我有这个函数接受双精度值,将其转换为货币格式和 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)!
,在这里强制展开是可以的,因为你知道输入是一个数字。