我正在學習 Swift 和 Xcode,并且有一個任務讓我難以理解。我在三個地方使用值格式化程式:
format: .currency(code: Locale.current.currencyCode ?? "PLN")
我把它打包成一個常量,它不會拋出任何錯誤:
let currencyFormatter = { (amount: Double) -> FloatingPointFormatStyle<Double>.Currency in
.currency(code: Locale.current.currencyCode ?? "PLN")
}
雖然執行確實會引發幾個錯誤(如果我將閉包交換為 void 而不是接受 Double,它們不會改變):
Text(totalPerPerson, format: currencyFormatter)
一些錯誤:1。
Cannot convert value of type 'Double' to expected argument type '((Double) -> FloatingPointFormatStyle<Double>.Currency).FormatInput'
Initializer 'init(_:format:)' requires that '((Double) -> FloatingPointFormatStyle<Double>.Currency).FormatInput' conform to 'Equatable'
uj5u.com熱心網友回復:
正確的常數應該是
let currencyFormatter = FloatingPointFormatStyle<Double>.Currency.currency(code: Locale.current.currencyCode ?? "PLN")
uj5u.com熱心網友回復:
對于這個問題,似乎還有另一種可行答案的變體,它更加強調常量的型別:
let currencyFormatter: FloatingPointFormatStyle<Double>.Currency = .currency(code: Locale.current.currencyCode ?? "PLN")
但是如果沒有@Asperi 的幫助就找不到它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/425800.html
