亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Scala程序設計—基礎篇

辰方 其它
難度初級
時長 2小時13分
學習人數
綜合評分9.63
93人評價 查看評價
9.8 內容實用
9.6 簡潔易懂
9.5 邏輯清晰
  • 尾遞歸函數
    尾遞歸函數(Tail Recursive Function)中所有遞歸形式的調用都出現在函數的未尾。
    當編譯器檢測到一個函數調用是尾遞歸的時候,它就覆蓋當前的活動記錄而不是在棧中去創建一個新的。

    查看全部
  • 注意尾遞歸函數的寫法,loop 函數定義了兩個參數表示區間變量和累加和,這是關鍵。另外,f(x)函數用匿名推導來定義,靈活的推廣到二階和三階求和。
    查看全部
    0 采集 收起 來源:例子

    2019-07-07

  • # 函數式編程

    > 命令式編程在理論上上升到語言學的層次,不可判定的問題很多,且為了實用引人更多的模糊地帶,是不夠嚴密的。而函數式編程關心語義,從數理邏輯出發建立基礎,例如三大語義,泛代數,可靠性完備性,合流,規約等概念,體系上更嚴密。而且視公理化為頭等大事。 - https://www.zhihu.com/question/36782552

    - 函數式編程是一種編程范式

    ## 范式(Paradigm)

    - 范式包括 philosophy (理念) 和 methods (方法)兩部分

    ? ? 1. 某事的 philosophy (理念) 就是,做某事,什么該做,什么不該做,以及方式

    ? ? 2. Methods (方法)就是繼方式之后的具體的操作


    ## 函數式編程沒有副作用

    > 副作用指的是函數內部與外部互動(最典型的情況,就是修改全局變量的值),產生運算以外的其他結果。函數式編程強調沒有"副作用",意味著函數要保持獨立,所有功能就是返回一個新的值,沒有其他行為,尤其是不得修改外部變量的值。

    ```scala

    var x=1

    def XPlusY_v1(y: Int)=x+y

    def XPlusY_v2(y: Int)={x+y;x} //有副作用,改變了x的值

    ```


    ## 函數式編程引用透明

    - 對于相同的輸入,總是得到相同的輸出

    - 如果f(x)的參數x和函數體都是透明的,那么函數f(x)是純函數

    ```scala

    var x = new StringBulider("Hello")

    var y = x.append(" World!") //Hello World!

    var z = x.append(" World!") //Hello World! World!

    // appned 方法違反了引用透明性

    ```

    ### 不變性 Immutability

    - 為了獲得引用透明性,任何值都不能變


    ## 表達式求值

    1. 嚴格求值 call by value

    2. 非嚴格求值 call by name


    查看全部
  • try catch finally 跟Java差不多 只不過catch這里是個表達式


    code match 類似switch

    查看全部
  • if條件判斷 沒有設置值默認{}

    for循環 s <- l? 賦值? yield配合變量將新的值打印出來

    查看全部
  • Scala的函數可以足夠聰明知道函數的返回值類型
    Scala的函數簡單的一行表達式不需要函數括號


    查看全部
  • 底精度變量可以直接向高精度變量轉換

    Unit 表示無值,和其他語言中void等同,用作不返回任何結果的方法的結果類型。Unit只有一個實例值,寫成()。

    Nothing Nothing類型在Scala的類層級的最低端;它是任何其他類型的子類型。函數出錯會返回Nothing。

    函數定義

    def?main(args:?Array[String]):?Unit?=?{}

    字符串占位符:

    var?e?=?"bob";
    
    println(s"your?name?is?${e}")


    查看全部
    0 采集 收起 來源:Scala數據類型

    2019-04-26

  • 三種變量修飾符
    val?定義常量,不可修改
    var?定義變量
    lazy?val?只要第一次使用到時候,才會運算表達式得到值
    可以不顯示指定變量的類型,因為Scala會自動進行類型推導


    查看全部
  • Scala里有兩種求值策略(Evaluation?Strategy)
    Call?By?Value?-?對函數實參求值,且僅求值一次
    Call?By?Name?-?函數實參每次在函數體內被用到時都會求值


    查看全部
    0 采集 收起 來源:求值策略

    2019-04-15

  • try 在Scala里面不是一個語句,而是一個表達式


    查看全部
  • Scala的for循環和Java的有很大差異,但基本原理是一致的。


    查看全部
  • 1.?在Scala?IDE中有一個很便捷的功能,那就是WorkSheet
    它類似于交互式命令行的代碼測試,在Worksheet輸入scala表達式,保存以后會立即得到程序運行的結果
    2.?Scala的函數可以足夠聰明知道函數的返回值類型
    3.?Scala的函數簡單的一行表達式不需要函數括號


    查看全部
  • 底精度變量可以直接向高精度變量轉換

    Unit 表示無值,和其他語言中void等同,用作不返回任何結果的方法的結果類型。Unit只有一個實例值,寫成()。

    Nothing Nothing類型在Scala的類層級的最低端;它是任何其他類型的子類型。函數出錯會返回Nothing。

    查看全部
    0 采集 收起 來源:Scala數據類型

    2019-04-13

  • 三種變量修飾符
    val?定義常量,不可修改
    var?定義變量
    lazy?val?只要第一次使用到時候,才會運算表達式得到值
    可以不顯示指定變量的類型,因為Scala會自動進行類型推導


    查看全部
  • Install?Java?JDK
    Download?Scala
    Install?SBT
    REPL?(Read?Evaluate?Print?Loop)
    Install?Scala?IDE


    查看全部
    0 采集 收起 來源:scala環境搭建

    2019-04-08

舉報

0/150
提交
取消
課程須知
本課程是Scala的基礎教程,雖然對學員的基礎不做要求,但是學員最好有一門編程語言的經驗,這樣會更容易理解課程里的一些概念。
老師告訴你能學到什么?
1、函數式編程的基本概念 2、Scala的開發環境 3、高階函數 4、表達式求值策略 5、Scala Immutable Collection簡介

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!