scala隱式轉換優先順序問題
隱式轉換編譯器會優先選擇方法的引數作為轉換物件,驗證如下:
-
object rct {
-
-
-
implicit def intToBook(num:Int) = new Book(num)
-
implicit def bookToInt(book:Book) = book.number
-
-
class Book(val number:Int){
-
-
def + ( that : Book ) = new Book( this.number + that.number )
-
-
}
-
-
-
def main(args: Array[String]): Unit = {
-
-
-
val book1 = new Book(100)
-
val book2 = new Book(200)
-
-
val book3 = book1 + book2
-
println(book3.isInstanceOf[Book])
-
-
val book4 = book1 + 200
-
println(book4.isInstanceOf[Book])
-
-
val book5 = 200 + book1
- println(book5.isInstanceOf[Int])
-
print:
true
true
true
true
true
true
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29754888/viewspace-2137052/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於CSS樣式的優先順序問題CSS
- Scala Essentials: 隱式轉換
- Scala - 隱式轉換和隱式引數
- Scala隱式轉換與隱式引數
- CSS優先順序CSS
- 何為CSS 樣式優先順序CSS
- mysql隱式轉換問題MySql
- 優先順序反轉+解決方案
- 優先順序反轉解決方案
- 函式宣告與變數宣告的提升機制優先順序問題函式變數
- iOS Autolayout 修改約束優先順序崩潰問題iOS
- 中斷優先順序
- python運算子及優先順序順序Python
- Oracle RAC引數設定優先順序別問題分析Oracle
- Nginx配置指令location匹配符優先順序和安全問題Nginx
- Facebook的分散式優先順序佇列FOQS分散式佇列
- css樣式分類、定義、優先順序CSS
- Android程式優先順序Android
- SQL 優先順序join>whereSQL
- java運算子優先順序Java
- nginx快取優先順序Nginx快取
- php運算子優先順序PHP
- css優先順序彙總CSS
- toString()和valueOf()函式呼叫和優先順序函式
- scala中隱式轉換之隱式轉換呼叫類中本不存在的方法
- java setPriority()設定優先順序Java
- [譯]HTTP/2的優先順序HTTP
- 封裝優先順序佇列封裝佇列
- Yarn任務優先順序配置Yarn
- gitignore優先順序小結Git
- css 選擇器優先順序CSS
- CSS的處理優先順序CSS
- java執行緒優先順序Java執行緒
- 資料型別優先順序資料型別
- 深入理解css優先順序CSS
- NLS引數優先順序解析
- 華為路由協議優先順序路由協議
- C++運算子優先順序C++