溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Windows下怎么搭建Scala開發(fā)環(huán)境

發(fā)布時間:2021-12-08 11:33:26 來源:億速云 閱讀:133 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“Windows下怎么搭建Scala開發(fā)環(huán)境”,在日常操作中,相信很多人在Windows下怎么搭建Scala開發(fā)環(huán)境問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Windows下怎么搭建Scala開發(fā)環(huán)境”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

第一章 Scala 語言概述

1.1 why is Scala 語言?

1、Spark--新一代內(nèi)存級大數(shù)據(jù)計算框架,是大數(shù)據(jù)的重要內(nèi)容。
2、Spark 就是使用 Scala 編寫的。因此為了更好的學習 Spark, 需要掌握 Scala 這門語言。
3、Scala 是 Scalable Language 的簡寫,是一門多范式(范式=編程方式[面向?qū)ο?函數(shù)式編程])的編程語言。
4、聯(lián)邦理工學院洛桑(EPFL)的 Martin Odersky(馬丁·奧德斯基) 于 2001 年開始設(shè)計 Scala(斯卡拉)。
5、Spark 的興起,帶動 Scala 語言的發(fā)展!

1.2 Scala 語言誕生小故事

??創(chuàng)始人馬丁·奧德斯基 (Martin Odersky) 是編譯器及編程的狂熱愛好者,長時間的編程之后,希望發(fā)明一種語言,能夠讓寫程序這樣的基礎(chǔ)工作變得高效、簡單。所以當接觸到 JAVA 語言后,對 JAVA 這門便攜式、運行在網(wǎng)絡(luò)、且存在垃圾回收的語言產(chǎn)生了極大的興趣,所以決定將函數(shù)式編程語言的特點融合到 JAVA 中,由此發(fā)明了兩種語言(Pizza & Scala)。 (大量使用遞歸)
??jdk5.0 的泛型、for 循環(huán)增強,、自動類型轉(zhuǎn)換等,都是從 Pizza 引入的新特性。
??jdk8.0 的類型推斷、Lambda 表達式 就是從 scala 引入的特性。
??Pizza 和 Scala 極大地推動了 Java 編程語言的發(fā)展。[如何理解?]
??且現(xiàn)在主流 JVM 的 javac 編譯器就是 馬丁·奧德斯基 編寫出來的。并被 JAVA 編程人員廣泛的使用,所以 Scala 語言起源于 Java,卻推動著 Java 的發(fā)展,它們是相輔相成的。Jdk5.0、Jdk8.0 的編譯器就是 馬丁·奧德斯基 寫的,因此 馬丁·奧德斯基 是一個人的戰(zhàn)斗力抵得上一個 Java 開發(fā)團隊。
??



??正是基于上面的原因,所以 Scala 源代碼 (.scala) 會被編譯成 Java 字節(jié)碼 (.class),然后運行于 JVM 之上,并可以調(diào)用現(xiàn)有的 Java 類庫,實現(xiàn)兩種語言的無縫對接,因此,對于已經(jīng)掌握 JAVA 語言的我們來講,學習起來一定會略顯輕松。
??Scala 是一門以 java 虛擬機(JVM) 為目標運行環(huán)境并將 面向?qū)ο?/code>和 函數(shù)式編程的最佳特性結(jié)合在一起的 靜態(tài)類型編程語言。(運行之前一定知道類型是什么)

 

1.3 Scala 和 Java 以及 jvm 的關(guān)系分析圖

??一般來說,學 Scala 的人,都會 Java,而 Scala 是基于 Java 的,因此我們需要將 Scala 和 Java 以及 JVM 之間的關(guān)系搞清楚,否則學習 Scala 你會蒙圈。
??建議:如果沒有任何 Java 基礎(chǔ)的同學,先學 Java,至少要學習 JavaSE,再學習 Scala。
??我們分析一下:Scala 和 Java 以及 jvm 的關(guān)系 (重要!?。?
??

Windows下怎么搭建Scala開發(fā)環(huán)境


2、

Windows下怎么搭建Scala開發(fā)環(huán)境

1.6 Linux 下搭建 Scala 開發(fā)環(huán)境

??在實際開發(fā)中,我們的項目是部署到 linux 上,因此,我們需要在 Linux 下搭建 scala 的環(huán)境。Linux 下安裝 Scala 的原理機制一樣,操作的具體步驟:
1、下載對應(yīng)的 scala 的安裝軟件 scala-2.11.8.tgz
2、通過遠程登錄工具,將安裝軟件上傳到對應(yīng)的 Linux 系統(tǒng)(xshell6 和 xftp6)
3、mkdir /opt/module/scala 創(chuàng)建目錄
4、解壓:$ tar -zvxf /opt/software/scala-2.11.8.tgz -C /opt/module/scala/
5、配置環(huán)境變量 vim /etc/profile
在該文件中配置 scala 的 bin 目錄 /opt/module/scala/scala-2.11.8/bin

#SCALA_HOME
export SCALA_HOME=/opt/module/scala/scala-2.11.8
export PATH=$PATH:$SCALA_HOME/bin

6、使配置文件生效 source /etc/profile
7、測試,命令:scala

Windows下怎么搭建Scala開發(fā)環(huán)境


對 scala 程序基本結(jié)構(gòu)說明:

1.8.2 linux 下開發(fā)步驟

步驟如下:
??1、直接使用 vim 開發(fā),一個遍歷數(shù)組的案例。
??2、將 Scala 代碼編寫到擴展名為 HelloScala.scala 的文件中。[代碼說明]
??3、通過 scala 命令對該 scala 文件進行編譯,生成 .class 字節(jié)碼文件。
??4、在終端執(zhí)行 scala HelloScala 就可以看到運行效果。
??5、注意:通過 scala HelloScala 命令可以直接運行 HelloScala.scala 程序。
代碼如下:

/**
  * 只要以后看到 object HelloScala,我們就應(yīng)該有如下認識:
  *     1、object HelloScala 對應(yīng)的是一個 HelloScala$ 類型的靜態(tài)對象 MODULE$。
  *     2、object HelloScala 在程序運行中是單例存在的。
  */
object HelloScala {
  def main(args: Array[String]): Unit = {
    println("hello scala")
  }
}

1.8.3 IDEA 下開發(fā)步驟

??使用文本工具開發(fā)項目可以很好的理解運行原理,但是不利于開發(fā)綜合項目,所以在實際開發(fā)中我們要使用 Idea 來開發(fā)。
步驟如下:
??1、新建一個 Maven 工程,在工程的 main 目錄下新建一個 scala 文件夾,將該文件夾標記為【源碼文件夾】,方便管理。右鍵 scala -> Mark Directory as -> Sources Root
??2、默認情況下,不能寫 scala 程序,需要我們引入 scala 框架(即將該工程關(guān)聯(lián)上 scala),選中該項目右鍵 -> Add Framework Support… -> 勾選左側(cè) Scala -> 指定 Scala 安裝的主目錄 -> OK。
??3、在 scala 文件夾上右擊,選擇新建一個 Scala 類,勾選 Kind 為 Object,如下圖所示:
??

Windows下怎么搭建Scala開發(fā)環(huán)境


??4、開發(fā)一個 HelloScala.scala 程序。
??5、運行后,就可以看到輸出。
??

1.8.4 使用 java 寫一段模擬代碼,來模擬 scala 的執(zhí)行流程

代碼如下:

package com.atguigu.chapter01.Test;

/**
 * 可以理解我們在 main 中寫的代碼放在 HelloScala$ 的 mian 里,即 scala 在底層運行的時候,編譯器做了一個包裝。
 */
public class HelloScala {

    public static void main(String[] paramArrayOfString) {
        HelloScala$.MODULE$.main(paramArrayOfString);
    }
}

final class HelloScala$ {
    public static final HelloScala$ MODULE$;

    static {
        MODULE$ = new HelloScala$();
    }

    public void main(String[] args) {
        System.out.println("hello scala");
    }
}

1.8.5 Scala 執(zhí)行流程分析

Windows下怎么搭建Scala開發(fā)環(huán)境

1.8.6 Scala 程序開發(fā)注意事項(重點)

注意事項:
??1、Scala 源文件以 “.scala" 為擴展名。
??2、Scala 程序的執(zhí)行入口是 main() 函數(shù)。
??3、Scala 語言嚴格區(qū)分大小寫。
??4、Scala 方法由一條條語句構(gòu)成,每個語句后不需要分號(Scala 語言會在每行后自動加分號),這也體現(xiàn)出 Scala 的簡潔性。
??5、如果在同一行有多條語句,除了最后一條語句不需要分號,其它語句需要分號。

1.9 Scala 語言轉(zhuǎn)義字符

\t      :一個制表位,實現(xiàn)對齊的功能
\n      :換行符
\\      :一個\
\"      :一個"
\r      :一個回車  println("hello\rk");

1.10 Scala 語言輸出的三種方式

??1、字符串通過+號連接(類似java)。
??2、printf 用法(類似C語言)字符串通過 % 傳值。
??3、字符串通過 $ 引用(類似PHP)。
示例代碼:

package com.atguigu.chapter01

object PrintDemo {

  def main(args: Array[String]): Unit = {
    val str1: String = "hello"
    val str2: String = "world"
    // 連接打印
    println(str1 + str2)

    val name: String = "tom"
    val age: Int = 10
    val sal: Float = 10.67f
    val height: Double = 180.75
    // 格式化輸出
    printf("名字=%s 年齡=%d 薪水=%.2f 身高=%.3f", name, age, sal, height)

    // scala 支持使用 $ 輸出內(nèi)容
    println(s"個人信息如下1:\n 名字$name\n 年齡$age\n 薪水$sal\n")
    // 如果字符串中出現(xiàn)了類似 ${age + 10} ,則表示 {} 是一個表達式
    println(s"個人信息如下2:\n 名字${name}\n 年齡${age + 10}\n 薪水${sal}\n")
  }
}

輸出結(jié)果:

helloworld
名字=tom 年齡=10 薪水=10.67 身高=180.750
個人信息如下1:
名字tom
年齡10
薪水10.67

個人信息如下2:
名字tom
年齡20
薪水10.67

1.11 Scala 源碼的查看的關(guān)聯(lián)

??在使用 scala 過程中,為了搞清楚 scala 底層的機制,需要查看源碼,下面看看如果關(guān)聯(lián)和查看 scala 的源碼包。
1、查看源碼, 選擇要查看的方法或者類, 輸入 Ctrl + B 或者 雙擊
當我們沒關(guān)聯(lián)源碼時,會看到如下圖:

Windows下怎么搭建Scala開發(fā)環(huán)境


我么可以點擊 Download… 自動下載源碼,也可以手動關(guān)聯(lián)源碼。

2、手動關(guān)聯(lián)源碼
源碼包下載地址:link,修改我們下載的源碼包 scala-2.11.8.tar.gz 包名為 scala-sources-2.11.8.tar.gz,為了方便識別
步驟一:將我們的源碼包拷貝至 scala/lib 文件夾下(scala-sources-2.11.8.tar.gz),這樣為了方便管理,然后進行解壓(因為 IDEA 不識別 xxx.tar.gz 這種格式的壓縮包)
步驟二:關(guān)聯(lián)即可,點擊 Attach Sources…,選中 scala-sources-2.11.8 這個文件夾,進行關(guān)聯(lián),最后,可以看到源碼

1.12 注釋

1.12.1 介紹

??用于注解說明解釋程序的文字就是注釋,注釋提高了代碼的閱讀性。
??注釋是一個程序員必須要具有的良好編程習慣。將自己的思想通過注釋先整理出來,再用代碼去體現(xiàn)。

1.12.2 Scala 中的注釋類型

??1、單行注釋:格式:// 注釋文字
??2、多行注釋:格式: /* 注釋文字 */
??3、文檔注釋:注釋內(nèi)容可以被工具 scaladoc 所解析,生成一套以網(wǎng)頁文件形式體現(xiàn)的該程序的說明文檔。

1.12.3 文檔注釋案例

??1、打開文件所在的目錄,選中文件右鍵 -> Show in Explorer
??2、在命令行窗口中輸入 scaladoc -d d:/mydoc Comment.scala 可以生成對應(yīng)的文檔說明。
示例代碼如下:

package com.atguigu.chapter01

object Comment {
  def main(args: Array[String]): Unit = {
    println("hello world")
  }

  /**
    * @deprecated 過期
    * @example
    *          輸入 n1 = 10 n2 = 20 return 30
    * @param n2
    * @return 求和
    */
  def sum(n1: Int, n2: Int): Int = {
    return n1 + n2
  }
}

1.12.4 scala 的代碼規(guī)范說明

1.12.5 正確的注釋和注釋風格

??查看 Scala 源碼。

1.12.6 正確的縮進和空白

??1、使用一次 tab 操作,實現(xiàn)縮進,默認整體向右邊移動,使用 Shift + Tab 整體向左移。
??2、或者使用 Ctrl + Alt + L 來進行格式化代碼。
??3、運算符兩邊習慣性各加一個空格。比如:2 + 4 * 5。
??4、一行最長不超過 80 個字符,超過的請使用換行展示,盡量保持格式優(yōu)雅。

1.12.7 Scala 官方編程指南

API 下載地址:scala-api

Windows下怎么搭建Scala開發(fā)環(huán)境

到此,關(guān)于“Windows下怎么搭建Scala開發(fā)環(huán)境”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI