王家林親授《DT大數據夢工廠》大數據實戰視頻 Scala 深刻淺出實戰經典(1-64講)完整視頻、PPT、代碼下載:
百度雲盤:http://pan.baidu.com/s/1c0noOt6
騰訊微雲:http://url.cn/TnGbdC
360雲盤:http://yunpan.cn/cQ4c2UALDjSKy 訪問密碼 45e2
土豆:http://www.tudou.com/programs/view/pR_4sY0cJLs/
優酷:http://v.youku.com/v_show/id_XMTI4NTE2NDI3Mg==.html?from=s1.8-1-1.2
愛奇藝:http://www.iqiyi.com/w_19rrtik9eh.html#vfrm=2-3-0-1
騰訊視頻: http://v.qq.com/boke/page/e/0/y/e01599vk0gy.html
技術愛好者尤爲是大數據愛好者 能夠加DT大數據夢工廠的qq羣html
DT大數據夢工廠① :462923555
DT大數據夢工廠②:437123764
DT大數據夢工廠③ :418110145java
微信公衆帳號: DT_Spark
王家林老師微信號: 18610086859
王家林老師QQ: 1740415547
王家林老師郵箱: 18610086859@126.com微信
本視頻由王家林老師, 親自講解, 徹底經過代碼實戰把您帶人大數據的時代.ide
package com.parllay.scala.type_parameterizitor /** * Created by richard on 15-8-7. * 第53講:Scala中結構類型實戰詳解 */ class Structural { def open() =print("A class instance Opened")} object Structural_Type { def main (args: Array[String]) { init(new { def open() = println("Opened")}) type X = { def open():Unit } def init(res:X) = res.open init(new { def open()=println("Opened again")}) object A { def open() {println("A single object opened")}} init(A) val structural = new Structural init(structural) } def init( res: {def open(): Unit}): Unit ={ res.open } } /** * 結構類型(structural type)爲靜態語言增長了部分動態特性, * 使得參數類型再也不拘泥於某個已命名的類型,只要參數中包含結構中聲明的方法或值便可。 * 舉例來講,java裏對全部定義了close方法的抽象了一個Closable接口, * 而後再用Closable類型約束參數, * 而scala裏能夠不要求參數必須繼承自Closable接口只須要包含close方法;以下: scala> def free( res: {def close():Unit} ) { res.close } scala> free(new { def close()=println("closed") }) closed 也能夠經過type在定義類型時,將其聲明爲結構類型 scala> type X = { def close():Unit } defined type alias X scala> def free(res:X) = res.close scala> free(new { def close()=println("closed") }) closed 上面傳入參數時,都是傳入一個實現close方法的匿名類, 若是某個類/單例中實現了close方法,也能夠直接傳入 scala> object A { def close() {println("A closed")} } scala> free(A) A closed scala> class R { def close()=print("ok") } scala> val r = new R scala> free(r) ok 結構類型還能夠用在稍微複雜一點的「複合類型」中,好比: scala> trait X1; trait X2; scala> def test(x: X1 with X2 { def close():Unit } ) = x.close 上面聲明test方法參數的類型爲: X1 with X2 { def close():Unit } 表示參數須要符合特質X1和X2同時也要有定義close方法 */