Scala 基礎入門教程
阿新 • • 發佈:2018-12-23
1.前言
最近在參加Hadoop和Spark培訓,需要使用Scala,自學了一下作為入門,這裡作一個記錄。
2.下載
1) 在scala官網下載,地址: http://www.scala-lang.org/
2) 下載IDE,地址: http://scala-ide.org/
3)配置環境變數
SCALA_HOME:C:\Program Files (x86)\scala
Path:C:\Program Files (x86)\scala\bin
在命令列中可以測試scala是否正常安裝。
3.Hello Word
IDE 其實就是一個Eclipse的開發環境,大家都很熟悉了。新建工程->新建類即可!
可以發現,jre都是本地的,這也說明了scala是可以直接執行在JVM上的。scala也可以直接在互動式shell環境下執行(如命令列圖所示),這也是scala很大的一個優勢。
4.基本例子
1)變數的使用
object Hello {
def main(args: Array[String]) {
var a = 1;
var b = 2;
var c = a + b;
println("c = " + c);
}
var 說明編譯器可以做型別推斷,字元和數字使用"+"連線成字串。2)迴圈
var i = 0;
// for loop execution with a range
for( i <- 1 to 3){
println( "Value of i: " + i );
}
唯一的區別在於符號 <-3) 集合
var index = 0;
val numList = List(1,2,3,4,5,6);
// for loop execution with a collection
for( index <- numList ){
println( "Value of index: " + index );
}
4)函式由引數和無引數的形式,感受一下!def printMe() : Unit = { println("Hello, Scala!") } def addInt( a:Int, b:Int ) : Int = { var sum:Int = 0 sum = a + b return sum }
5)呼叫同一個包下面的類
class Yiibai(xc: Int, yc: Int) {
var x: Int = xc
var y: Int = yc
def move(dx: Int, dy: Int) {
x = x + dx
y = y + dy
println ("Yiibai x location : " + x);
println ("Yiibai y location : " + y);
}
}
在main函式裡面呼叫:val pt = new Yiibai(10, 20);
pt.move(10, 10);
6) Tuplesval pair = (99, "Luftballons")
println(pair._1)
println(pair._2)
注意訪問形式7)類的繼承
trait Friendly {
def greet() = "Hi"
}
class Dog extends Friendly {
override def greet() = "Woof"
}
class HungryDog extends Dog {
override def greet() = "I'd like to eat my own dog food"
}
trait ExclamatoryGreeter extends Friendly {
override def greet() = super.greet() + "!"
}
var pet: Friendly = new Dog
println(pet.greet())
pet = new HungryDog
println(pet.greet())
pet = new Dog with ExclamatoryGreeter
println(pet.greet())
pet = new HungryDog with ExclamatoryGreeter
println(pet.greet())
輸出:Woof
I'd like to eat my own dog food
Woof!
I'd like to eat my own dog food!
8)Trait類似Java interface, 但可以定義方法體!
trait Friendly {
def greet() = "Hi"
}
class Dog extends Friendly {
override def greet() = "Woof"
}
9)異常import java.io.FileReader
import java.io.FileNotFoundException
import java.io.IOException
object Test {
def main(args: Array[String]) {
try {
val f = new FileReader("input.txt")
} catch {
case ex: FileNotFoundException =>{
println("Missing file exception")
}
case ex: IOException => {
println("IO Exception")
}
}
}
}
輸出:C:/>scalac Test.scala
C:/>scala Test
Missing file exception
C:/>
10)檔案寫檔案
import java.io._
object Test {
def main(args: Array[String]) {
val writer = new PrintWriter(new File("test.txt" ))
writer.write("Hello Scala")
writer.close()
}
}
讀檔案import scala.io._
Source.fromFile(new java.io.File("cn.scala")).getLines().foreach(println)
5.總結scala 在大資料,雲端計算方面有較為廣泛的運用,學習一下還是挺有用的,歡迎大家一起分享討論。