Scala中Infix Type、Self Types、Dependency Injection、Abstract Types解析

Scala類型複雜、多樣,Infix Type、Self Types、Dependency Injection、Abstract Types在實際開發中使得代碼的書寫多樣、靈活



Infix Type(終止類型):有兩個參數,分別在對象類型的兩端
1、首先它是個泛型類型,不僅用在隱式轉換中,而且用在實際開發的方方面面
2、終止表達式和模式匹配的配合在實際開發中非常實用
3、如上圖中”Spark” >>: “Scala” >>: Log 遍歷順序:從右往左遍歷
4、上面代碼中“>>:”其實是一個函數,兩個String類型的入參,返回值是Log對象
5、截圖中的infix和infix1的作用完全一樣,但是第一種書寫方式可讀性更強


Self Types(自身類型):設置實例指針的別名,可以是self也可以用別的來使用
主要用途:
1、trait S2 {this:S1 =>}:通過this別名的方式,在S2中引入S1
2、實例化S2時必須混入指定的類型S1,對實例化的類型有一個強制的要求,混入的類型S1可以被做一些強制的要求


Dependency Injection(依賴注入):
1、比在java中實現依賴注入方便太多了,java中依賴注入的實現方式是:通過xml文件加載需要依賴注入的bean,然後注入到spring容器中
2、java依賴注入的弊端:無法檢測xml配置是否正確



Abstract Types(抽象類型)
注:
1、能使用抽象類型就儘量使用抽象類型,抽象類型在接口中可以被限制,這樣就可以實現類中寫出多樣、複雜的類型
2、抽象類型比構造方法的方式更加簡單、方便

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章