Функция, возвращающая Необязательно ("Строка")
У меня есть эта функция, которая принимает значение 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 and String в функцию как Optional, а затем развернуть, но Optional показывает все еще.
1 ответ
Не возвращается Optional("R$1.200,30")
, это возвращает "Optional("R$1.200,30")"
, Там есть небольшая разница; обратите внимание на "
, Что происходит formatter.stringFromNumber(valor)
возвращается String?
, который вы кладете в String
с помощью "\(...)"
, Вместо этого вы должны вернуться formatter.stringFromNumber(valor)!
Принудительная распаковка - это нормально, потому что вы знаете, что это число.