黑猴子的家:Scala 結(jié)構(gòu)類型

結(jié)構(gòu)類型是指一組關于抽象方法、字段和類型的規(guī)格說明,你可以對任何具備append方法的類的實例調(diào)用appendLines方法,這種方式比定義特質(zhì)更加靈活,是通過反射進行調(diào)用的

class Structure {
  def play() = println("play方法調(diào)用了")
}

object HelloStructure {
  def main(args: Array[String]): Unit = {
    type X = {def play(): Unit} //type關鍵字是把 = 后面的內(nèi)容命名為別名。

    def init(res: X) = res.play //本地方法

    init(new {
      def play() = println("Played")
    })

    init(new {
      def play() = println("Play再一次")
    })

    object A {
      def play() {
        println("A object play")
      }
    }

    init(A)
    val structure = new Structure
    init(structure)
  }
}

總結(jié)
結(jié)構(gòu)類型,簡單來說,就是只要是傳入的類型,符合之前定義的結(jié)構(gòu)的,都可以調(diào)用。
類型的結(jié)構(gòu)一樣,都是可以作為參數(shù),傳入的

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 點擊查看原文 Web SDK 開發(fā)手冊 SDK 概述 網(wǎng)易云信 SDK 為 Web 應用提供一個完善的 IM 系統(tǒng)...
    layjoy閱讀 14,313評論 0 15
  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學習記錄文檔,今天18年5月份再次想寫文章,發(fā)現(xiàn)簡書還為我保存起的...
    Jenaral閱讀 3,143評論 2 9
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,658評論 1 32
  • 注:都是在百度搜索整理的答案,如有侵權和錯誤,希告知更改。 一、哪些情況下的對象會被垃圾回收機制處理掉 ?當對象對...
    Jenchar閱讀 3,311評論 3 2
  • 本章要點 單例類型可用于方法串接和帶對象參數(shù)的方法。 類型投影對所有外部類型的對象都包含了其內(nèi)部類的實例。 類型別...
    胡楊1015閱讀 817評論 0 0

友情鏈接更多精彩內(nèi)容