我想實現一個貨幣操作符用於我的軟件中,該軟件採用Double並返回Currency類型以進行更精確的計算。符號被認爲是一個標識符,而不是運營商
自定義運算符的代碼基本上看起來有點像這樣。請忽略這種形式的明顯的精度下降,因此無用的操作符。
postfix operator £ { }
postfix func £(number: Double) -> Int {
return Int(number)
}
3.50£ // returns Int(3)
這斯威夫特工作正常。有趣的是,儘管我在嘗試與€符號完全相同時遇到了錯誤。
postfix operator € { }
postfix func €(number: Double) -> Int {
return Int(number)
}
這將產生錯誤'€' is considered to be an identifier, not an operator
。我不明白爲什麼這是不允許的,但。
下載Swift書並檢查標識符和運算符的確切語法。如果「€」是一個標識符,「£」是一個操作符,那是因爲Swift語言的語法如此。 PS。嘗試使用「聰明」的代碼時要非常小心。 – gnasher729