Scala基础教程(一):简介、环境安装
Scala基礎(chǔ)語法
如果有很好的了解Java語言,那么將很容易學(xué)習(xí)Scala。 Scala和Java間的最大語法的區(qū)別在于;行結(jié)束符是可選的。考慮Scala程序它可以被定義為通過調(diào)用彼此方法進(jìn)行通信的對(duì)象的集合。現(xiàn)在,簡(jiǎn)要地看看什么叫做類,對(duì)象,方法和臨時(shí)變量。
·????????對(duì)象 -?對(duì)象有狀態(tài)和行為。例如:狗有狀態(tài) - 顏色,名字,品種,它有行為 - 搖擺,吠叫,吃東西。對(duì)象是類的一個(gè)實(shí)例。
·????????類 -?類可以被定義為一個(gè)模板/藍(lán)本以描述行為/指示其類型支持對(duì)象。
·????????方法 -?方法本質(zhì)上是一個(gè)行為。類可以包含許多方法。它是在將邏輯寫入方法中,數(shù)據(jù)進(jìn)行操作和所有動(dòng)作被執(zhí)行。
·????????字段 -?每個(gè)對(duì)象都有其獨(dú)特的一組臨時(shí)變量,這是所謂的字段。對(duì)象的狀態(tài)是由分配給這些字段中的值創(chuàng)建的。
第一個(gè)Scala程序:
交互式模式編程:
調(diào)用解釋不通過一個(gè)腳本文件作為一個(gè)參數(shù)會(huì)顯示以下提示:
C:>scala Welcome to Scala version 2.9.0.1 Type in expressions to have them evaluated. Type :help for more information. ? scala>鍵入下列文字的Scala提示符,然后按Enter鍵:
scala> println("Hello, Scala!");這將產(chǎn)生以下結(jié)果:
Hello, Scala!腳本模式編程:
讓我們來看一個(gè)簡(jiǎn)單的代碼,用于打印簡(jiǎn)單的一句話:Hello, World!
object HelloWorld { ?? /* This is my first java program.? ????* This will print 'Hello World' as the output ??? */ ?? def main(args: Array[String]) { ????? println("Hello, world!") // prints Hello World ?? } }讓我們來看看如何保存文件,編譯并運(yùn)行該程序。請(qǐng)按照以下的步驟:
1.? 打開記事本,并添加上面代碼。
2.? 將文件保存為:HelloWorld.scala。
3.? 打開命令提示符窗口,然后轉(zhuǎn)到保存程序文件的目錄。假設(shè)它是 C:>
4.? 鍵入“scalac HelloWorld.scala”,然后按回車編譯代碼。如果代碼中沒有錯(cuò)誤,命令提示符下將自動(dòng)換到下一行。
5.? 上面的命令將在當(dāng)前目錄中生成幾個(gè)類文件。其中一個(gè)名稱為HelloWorld.class。這是一個(gè)字節(jié)碼可以運(yùn)行在Java虛擬機(jī)(JVM)。
6.? 現(xiàn)在,鍵入“scala HelloWorld”來運(yùn)行程序。
7.? 可以看到“Hello, World!”打印在窗口上。
C:> scalac HelloWorld.scala C:> scala HelloWorld Hello, World!基礎(chǔ)語法
關(guān)于Scala程序,這是非常要注意以下幾點(diǎn)。
·????????區(qū)分大小寫 - ?Scala是大小寫敏感的,這意味著標(biāo)識(shí)Hello 和 hello在Scala中會(huì)有不同的含義。
·????????類名 -?對(duì)于所有的類名的第一個(gè)字母要大寫。
如果需要使用幾個(gè)單詞來構(gòu)成一個(gè)類的名稱,每個(gè)單詞的第一個(gè)字母要大寫。
示例:classMyFirstScalaClass
·????????方法名稱 - 所有的方法名稱的第一個(gè)字母用小寫。
如果若干單詞被用于構(gòu)成方法的名稱,則每個(gè)單詞的第一個(gè)字母應(yīng)大寫。
示例:defmyMethodName()
·????????程序文件名 - 程序文件的名稱應(yīng)該與對(duì)象名稱完全匹配。
保存文件時(shí),應(yīng)該保存它使用的對(duì)象名稱(記住Scala是區(qū)分大小寫),并追加“.scala”為文件擴(kuò)展名。 (如果文件名和對(duì)象名稱不匹配,程序?qū)o法編譯)。
示例:?假設(shè)“HelloWorld”是對(duì)象的名稱。那么該文件應(yīng)保存為'HelloWorld.scala“
·????????def main(args: Array[String]) -?Scala程序從main()方法開始處理,這是每一個(gè)Scala程序的強(qiáng)制程序入口部分。
Scala修飾符:
所有的Scala的組件需要名稱。使用對(duì)象,類,變量和方法名被稱為標(biāo)識(shí)符。關(guān)鍵字不能用作標(biāo)識(shí)符和標(biāo)識(shí)是區(qū)分大小寫的。Scala支持以下四種類型標(biāo)識(shí)符:
文字標(biāo)識(shí)符
字母數(shù)字標(biāo)識(shí)符開始以字母或下劃線,可以使用字母,數(shù)字或下劃線。“$”字符在Scala中是保留關(guān)鍵字,標(biāo)識(shí)符不能使用。以下是合法的字母標(biāo)識(shí)符:
age, salary, _value,? __1_value以下是非法標(biāo)識(shí)符:
$salary, 123abc, -salary運(yùn)算符標(biāo)識(shí)
運(yùn)算符識(shí)別符由一個(gè)或多個(gè)運(yùn)算符字符。操作字符是可打印的ASCII字符,如+, :, ?, ~ 或#。以下是合法的運(yùn)算符標(biāo)識(shí):
+ ++ ::: <?> :>Scala編譯器將在內(nèi)部“軋”操作符標(biāo)識(shí)符使它們成為合法的Java標(biāo)識(shí)符,并嵌入$字符。例如,所述標(biāo)識(shí)符:->將內(nèi)部表示為$colon$minus$greater。
混合標(biāo)識(shí)符
混合標(biāo)識(shí)符由一個(gè)字母數(shù)字識(shí)別符,隨后是一個(gè)下劃線和運(yùn)算符標(biāo)識(shí)。以下是合法的混合標(biāo)識(shí)符:
unary_+,? myvar_=在這里,作為一個(gè)方法名unary_+定義了一個(gè)一元+運(yùn)算符和myvar_=用來作為方法名稱定義了一個(gè)賦值運(yùn)算符。
立即數(shù)標(biāo)識(shí)符
一個(gè)文字標(biāo)識(shí)是包含在反引號(hào)(` . . . `)的任意字符串。以下是合法的文字標(biāo)識(shí):
`x` `<clinit>` `yield`Scala關(guān)鍵字:
下面的列表顯示在Scala中的保留字。這些保留關(guān)鍵字不可以被用作常量或變量,或任何其他的標(biāo)識(shí)符名稱。
| abstract | case | catch | class |
| def | do | else | extends |
| false | final | finally | for |
| forSome | if | implicit | import |
| lazy | match | new | null |
| object | override | package | private |
| protected | return | sealed | super |
| this | throw | trait | try |
| true | type | val | var |
| while | with | yield | ? |
| - | : | = | => |
| <- | <: | <% | >: |
| # | @ | ? | ? |
Scala中的注釋
Scala支持單行和多行注釋非常類似于Java。多行注釋可以嵌套,但必須正確嵌套。可用的任何注釋和所有字符都將被Scala編譯器忽略。
object HelloWorld { ?? /* This is my first java program.? ????* This will print 'Hello World' as the output ??? * This is an example of multi-line comments. ??? */ ?? def main(args: Array[String]) { ????? // Prints Hello World ????? // This is also an example of single line comment. ????? println("Hello, world!") ???} }空行和空格:
僅包含空格,可能帶有注釋行,被稱為一個(gè)空行,并且Scala將會(huì)完全忽略它。標(biāo)記可以通過空格和/或注釋分開。
換行符:
Scala是面向行的語言,語句可以用分號(hào)(;)結(jié)束或換行符。分號(hào)在聲明的結(jié)尾通常是可選的。可以鍵入一個(gè)想要的,如果語句出現(xiàn)其本身在一行。在另一方面,如果寫在一行多個(gè)語句分號(hào)是必需的:
val s = "hello"; println(s)Scala包:
包是一個(gè)代碼命名的模塊。例如,Lift 實(shí)用包net.liftweb.util。包聲明是在源文件中的第一個(gè)非注釋行,如下所示:
package com.liftcode.stuffScala的包可以被導(dǎo)入,使他們能夠在當(dāng)前編譯范圍內(nèi)被引用。下面的語句是導(dǎo)入scala.xml包的內(nèi)容:
import scala.xml._可以導(dǎo)入封裝的類和對(duì)象,例如,從scala.collection.mutable導(dǎo)入HashMap:
import scala.collection.mutable.HashMap可以從一個(gè)單一封裝的scala.collection.immutable包導(dǎo)入多個(gè)類或?qū)ο?#xff0c;例如,TreeMap和TreeSet:
import scala.collection.immutable.{TreeMap, TreeSet}?
?
Scala語言可以安裝在任何類UNIX或Windows系統(tǒng)。要安裝Scala,必須先安裝Java1.5或更高版本安裝在計(jì)算機(jī)上。
Windows上安裝Scala:
步驟(1):JAVA設(shè)置:
首先,必須設(shè)置JAVA_HOME環(huán)境變量和將JDK的bin目錄添加到PATH變量。要驗(yàn)證是否可以工作,在命令提示符下,鍵入:java -version,然后按Enter。應(yīng)該看到類似以下內(nèi)容:
C:>java -version java version "1.6.0_15" Java(TM) SE Runtime Environment (build 1.6.0_15-b03) Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02, mixed mode) ? C:>接下來測(cè)試,看看已安裝Java編譯器。輸入javac -version。應(yīng)該看到類似以下內(nèi)容:
C:>javac -version javac 1.6.0_15 ? C:>步驟(2):SCALA設(shè)置:
接下來可以下載Scala從以下網(wǎng)址http://www.scala-lang.org/downloads.?在寫這篇教程的時(shí)候,下載的是scala-2.9.0.1-installer.jar,并把它放在 C:/> 目錄。請(qǐng)確保有管理員權(quán)限進(jìn)行。現(xiàn)在在命令提示符下鍵入以下命令執(zhí)行:
C:>java -jar scala-2.9.0.1-installer.jar ? C:>上面的命令將顯示一個(gè)安裝向?qū)?#xff0c;該向?qū)⒁龑?dǎo)在Windows計(jì)算機(jī)上安裝。在安裝過程中,它會(huì)詢問許可協(xié)議,接受它,并進(jìn)一步詢問Scala將要安裝的 路徑。選擇的默認(rèn)給出的路徑 C:ProgramFilesscala,可以選擇一個(gè)合適的路徑。最后打開一個(gè)新的命令提示符,然后鍵入scala -version,然后按Enter鍵。應(yīng)該會(huì)看到以下內(nèi)容:
C:>scala -version Scala code runner version 2.9.0.1 -- Copyright 2002-2011, LAMP/EPFL ? C:>恭喜已經(jīng)成在Windows機(jī)器上安裝Scala。下一節(jié)將演示如何在Mac OS X和Unix / Linux機(jī)器上安裝Scala。
在Mac OS X和Linux上安裝Scala
步驟(1):JAVA設(shè)置:
請(qǐng)確保擁有Java JDK1.5或更高版本已經(jīng)計(jì)算機(jī)上安裝并設(shè)置JAVA_HOME環(huán)境變量,以及JDK的bin目錄添加到PATH變量。要驗(yàn)證是否安裝正確,在命令提示符下,鍵入java -version,然后按Enter。應(yīng)該看到類似以下內(nèi)容:
$java -version java version "1.5.0_22" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03) Java HotSpot(TM) Server VM (build 1.5.0_22-b03, mixed mode) $接下來,測(cè)試,看看已安裝的Java編譯器。輸入javac-version。應(yīng)該看到類似以下內(nèi)容:
$javac -version javac 1.5.0_22 javac: no source files Usage: javac <options> <source files> ................................................ ? $步驟(2):SCALA設(shè)置:
接下來可以下載Scala 從以下網(wǎng)址?http://www.scala-lang.org/downloads.?在寫這篇教程的時(shí)候,下載的是Scala-2.9.0.1-installer.jar,并把它放在/tmp目錄。請(qǐng)確保擁有管理員權(quán)限才能進(jìn)行操作。現(xiàn)在,在命令提示符下鍵入以下命令執(zhí)行:
$java -jar scala-2.9.0.1-installer.jar Welcome to the installation of scala 2.9.0.1! The homepage is at: http://scala-lang.org/ press 1 to continue, 2 to quit, 3 to redisplay 1 ................................................ [ Starting to unpack ] [ Processing package: Software Package Installation (1/1) ] [ Unpacking finished ] [ Console installation done ] ? $在安裝過程中,它會(huì)詢問許可協(xié)議,接受它鍵入1,它會(huì)問在哪里Scala安裝。這里是在目錄/usr/local/share,可以選擇一個(gè)合適的路徑。最后,打開一個(gè)新的命令提示符,然后鍵入Scala的-version,然后按Enter鍵。應(yīng)該看到以下內(nèi)容:
$scala -version Scala code runner version 2.9.0.1 -- Copyright 2002-2011, LAMP/EPFL ? $恭喜,已經(jīng)在UNIX/Linux機(jī)器上安裝了Scala。
?
?
如果有很好的了解Java語言,那么將很容易學(xué)習(xí)Scala。 Scala和Java間的最大語法的區(qū)別在于;行結(jié)束符是可選的。考慮Scala程序它可以被定義為通過調(diào)用彼此方法進(jìn)行通信的對(duì)象的集合。現(xiàn)在,簡(jiǎn)要地看看什么叫做類,對(duì)象,方法和臨時(shí)變量。
·????????對(duì)象 -?對(duì)象有狀態(tài)和行為。例如:狗有狀態(tài) - 顏色,名字,品種,它有行為 - 搖擺,吠叫,吃東西。對(duì)象是類的一個(gè)實(shí)例。
·????????類 -?類可以被定義為一個(gè)模板/藍(lán)本以描述行為/指示其類型支持對(duì)象。
·????????方法 -?方法本質(zhì)上是一個(gè)行為。類可以包含許多方法。它是在將邏輯寫入方法中,數(shù)據(jù)進(jìn)行操作和所有動(dòng)作被執(zhí)行。
·????????字段 -?每個(gè)對(duì)象都有其獨(dú)特的一組臨時(shí)變量,這是所謂的字段。對(duì)象的狀態(tài)是由分配給這些字段中的值創(chuàng)建的。
第一個(gè)Scala程序:
交互式模式編程:
調(diào)用解釋不通過一個(gè)腳本文件作為一個(gè)參數(shù)會(huì)顯示以下提示:
C:>scala Welcome to Scala version 2.9.0.1 Type in expressions to have them evaluated. Type :help for more information. ? scala>鍵入下列文字的Scala提示符,然后按Enter鍵:
scala> println("Hello, Scala!");這將產(chǎn)生以下結(jié)果:
Hello, Scala!腳本模式編程:
讓我們來看一個(gè)簡(jiǎn)單的代碼,用于打印簡(jiǎn)單的一句話:Hello, World!
object HelloWorld { ?? /* This is my first java program.? ????* This will print 'Hello World' as the output ??? */ ?? def main(args: Array[String]) { ????? println("Hello, world!") // prints Hello World ?? } }讓我們來看看如何保存文件,編譯并運(yùn)行該程序。請(qǐng)按照以下的步驟:
1.? 打開記事本,并添加上面代碼。
2.? 將文件保存為:HelloWorld.scala。
3.? 打開命令提示符窗口,然后轉(zhuǎn)到保存程序文件的目錄。假設(shè)它是 C:>
4.? 鍵入“scalac HelloWorld.scala”,然后按回車編譯代碼。如果代碼中沒有錯(cuò)誤,命令提示符下將自動(dòng)換到下一行。
5.? 上面的命令將在當(dāng)前目錄中生成幾個(gè)類文件。其中一個(gè)名稱為HelloWorld.class。這是一個(gè)字節(jié)碼可以運(yùn)行在Java虛擬機(jī)(JVM)。
6.? 現(xiàn)在,鍵入“scala HelloWorld”來運(yùn)行程序。
7.? 可以看到“Hello, World!”打印在窗口上。
C:> scalac HelloWorld.scala C:> scala HelloWorld Hello, World!from: http://www.yiibai.com/scala/scala_basic_syntax.html總結(jié)
以上是生活随笔為你收集整理的Scala基础教程(一):简介、环境安装的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scala简明教程
- 下一篇: Scala基础教程(二):数据类型、变量