從頭學習大數據培訓課程 scala 對象與函數式編程(一)scala 環境安裝與基本語法①

scala介紹

hadoop(java)

hive(java)

hbase(java)

kafka(scala)

spark(scala)

scala安裝

開發工具idea安裝與使用

插件:maven,scala

創建maven項目

創建scala代碼目錄

配置項目

把新建的目錄變成source目錄

加scala SDK否則就不能創建scala的類

scala版的helloword

idea上maven的使用

清理target

重新編譯

修改maven的配置

修改字體

import其他項目

怎麼在idea查看源碼

修改快捷鍵

scala語法

val:變數的引用不過變

var:變數的引用可變

scala推薦用val,val就是value的縮寫

scala語言結尾不用分號和Python語言比較相似

scala不指定變數類型是會根據值進行自動推斷,當然也可以在初始化的時候明確指定變數的類型

scala的值類型有7種:

Byte、Char、Short、Int、Long、Float、Double

與Java相比值類型無引用類型,比如java中int對應的Integer

引用類型有那些比如Integer類型或者自己定義的類

條件表達式:

val x = 3

val y = if(x > 1) 1 else -1

val是不可變變數,但是在賦值之前if(x > 1) 1 else -1語句已經有結果了

混合類型表達式,支持返回多種類型(前提是在不確定類型的情況下,val y:String或val y:Int這樣都不行)

val y = if(x > 1) 1 else "hello"

val b = if(x < 1) 1

注意這個後面沒有else返回的是AnyVal類型,這個AnyVal是所有類型的基類,就跟Object是Java裡面所有類的基類一樣

這個語句和 val b = if(x<1) 1 else () 一個意思,這個語句里的()是Unit類型就相當於Java裡面的void

else if用法

val c = if(x > 1) 1 else if (x < 1) -1 else 0 這個和java裡面一樣的

for循環

1 to 10

返回1到10的所有值

1 until 10 等於Range(1,10),和Python里的range一樣的用法

返回1到9的所有值,也就是不包括10

for(i <- 1 to 10){

println(i)

}

for(i <- 1 to 10) println(i)

or(i <- 1 until 10) println(i)

for(i <- Range(1,10)) println(i)

結合數組使用

val arr = Array("a","b","c")

for(i <- arr) println(i)

嵌套for循環

for(i <- 1 to 3){

for(j <- 1 to 3){

if(i != j){

println(i + "_" + j)

}

}

}

簡便寫法

for(i <- 1 to 3;j <- 1 to 3 if(i != j)) println(i + "_" + j)

yield關鍵字結合for循環使用

val c = for(i <- 1 until 10) yield i

結果會生成一個集合,也就是yield的作用是把每次迭代生成的值封裝到一個集合中,當然也可以理解成yield會自動創建一個集合

如果把yield去掉那返回給C的值就為Unit

敬請關注下節:scala 環境安裝與基本語法②

推薦閱讀:

Scala數據分析 Step:1.1=&gt;添加解析csv功能
Scala基礎語法參考
kotlin和scala兩種語言的對比?
Scala 模式匹配、隱式轉換和參數

TAG:大數據 | Scala | 大數據處理 |