1.scala 變量定義 ,var val 區別。java
var 定義可變變量數組
val 定義不可變變量,scala 推薦使用。至關於Java的final 變量.app
scala中包含的基本數據類型詳情以下表所示:ui
序號 | 基本類型 | 加強類型 | 大小 | 取值範圍 |
---|---|---|---|---|
1 | Byte | RichByte | 8-bit | -128 ~ 127 |
2 | Char | RichChar | 16-bit | 0 ~ 65535 |
3 | Short | RichShort | 16-bit | -32768 ~ 32767 |
4 | Int | RichInt | 32-bit | -2^31 ~ 2^31 -1 |
5 | Long | RichLong | 64-bit | -2^63 ~ 2^63 -1 |
6 | Float | RichFloat | 32-bit | |
7 | Double | RichDoube | 64-bit |
2.scala 條件控制 if else if else scala
3. for 加強和 yield類型推導orm
to ,until 遍歷集合的區別blog
4.scala 異常處理it
try catch {case ex: Exception=> e}finally{}io
5. 可變參數方法定義 table
參數類型* *定義多個參數
6. def 方法定義的注意
def 方法名(參數):返回值={方法體}
返回值省略,默認 Any ,Any至關於java中的Object
object Control { def main(args:Array[String]): Unit ={ val a=5 // scala 儘可能不用return,最後一個表達式的值 做爲值返回 val b = if(a<7){val c=a+1;c+3} else if (a==5) 5 else 3 println(b) //數組初始化 val c:Array[String]=Array("a","b","d") //變量定義, 變量名:變量類型 val d:String = forAry(c) println(d) //求和 val result= sum(23,32,32,32,32) println(" sum result :"+result) // 將整個區間做爲參數序列來處理 :_* val newResult = sum(1 to 10:_*) println("sum newResult: "+newResult) //數組格式化輸出 toBuffer println(yieldAry().toBuffer) println("--------------------") filter() //異常 exception() } /** * 遍歷數組 * @param ary * @return */ def forAry(ary:Array[String]):String={ val newBuilder=new StringBuilder // to 是 i到 區間,包含開始和結尾 for(i<-10 to ary.length-1){ newBuilder.append(ary.apply(i)) } // unit 是 0 到 length-1 之間 for(i<-0 until ary.length){ newBuilder.append(ary.apply(i)) } //普通遍歷 for(a<-ary) println( a) newBuilder.toString() } /** * yield 關鍵字 推導生成新的數組 * @return Array[Int] */ def yieldAry():Array[Int]={ val ary :Array[Int]= Array(1,32,3,31,43) //until 從 0 到 ary.length-1 之間的下標 for(i<-0 until ary.length){ val d:Int=ary.apply(i) val e= d.*(122); // println(e) } //yield 類型推導爲Array for(arg<-ary) yield arg *2 } /** * 可變長參數定義 * * @param args * @return */ def sum(args:Int*):Long={ var result : Long=0 //for 循環遍歷 for(arg<-args){ result += arg } return result } /** * 數組過濾 */ def filter(): Unit ={ //定義一個數組 val ary =Array(12,2,12,43,2,12,1) //去重 過濾 //保留符合條件的元素 _.%(2)==0 保留偶數, // map(_*2) 是各個元素乘以 2 val a = ary.distinct.filter(_.%(2)==0).map(_*2) println(a.toBuffer) println(a.sum)//元素求和 } /** * 異常處理 */ def exception():Unit={ //定義一個定長的數組 val ary = new Array[String](2) ary(0)="1234e" var it = -2 try{ it = ary(0).toInt } catch { case ex: FileNotFoundException => it = 0 case ex: NumberFormatException => it = 12 case ex:Exception => it = -3 }finally { println(it) } } }