從頭學習大數據培訓課程 scala 對象與函數式編程(一)scala 環境安裝與基本語法①
05-15
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 -1val是不可變變數,但是在賦值之前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裡面的voidelse 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的所有值,也就是不包括10for(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=>添加解析csv功能
※Scala基礎語法參考
※kotlin和scala兩種語言的對比?
※Scala 模式匹配、隱式轉換和參數