Функция, возвращающая Необязательно ("Строка")

У меня есть эта функция, которая принимает значение 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)!Принудительная распаковка - это нормально, потому что вы знаете, что это число.

Другие вопросы по тегам