一、scala一切皆对象,变量也有方法。 1. scala> 0.to(5) res1: scala.collection.immutable.Range.Inclusive = Range(0, 1, 2, 3, 4, 5) apply是scala的创建实体的方法 scala> Array(1,2,3,4) res7: Array[Int] = Array(1, 2, 3, 4) scala> val array = Array(1,2,3,4) array: Array[Int] = Array(1, 2, 3, 4) scala> array res8: Array[Int] = Array(1, 2, 3, 4) scala> val age = 19 age: Int = 19 scala> if(age >= 18) "man" else "boy" res9: String = man scala> val result = if(age >= 18) "man" else "boy" result: String = man 2. scala中块表达式的最后一行的值就是最后一行的值。 3. readLine读取数据方法: scala> readLine warning: there was one deprecation warning; re-run with -deprecation for details res11: String = please enter u scala> readLine("how are u") warning: there was one deprecation warning; re-run with -deprecation for details 4. 变长参数问题 scala> def sum(numbers : Int*) = {var result = 0; for(elsement <- numbers) resul t += elsement; result} sum: (numbers: Int*)Int scala> sum(1,2,3,4,5,6,7,8,9) res26: Int = 45 scala> sum(1 to 100 : _*) res27: Int = 5050 5. lazy 在第一次调用的时候才会赋值 6. ArrayBuffer 及其操作 scala> val arrBuffer = ArrayBuffer[Int]() <console>:7: error: not found: value ArrayBuffer val arrBuffer = ArrayBuffer[Int]() ^ scala> import scala.collection.mutable.ArrayBuffer import scala.collection.mutable.ArrayBuffer scala> val arrBuffer = ArrayBuffer[Int]() arrBuffer: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer() scala> arrBuffer = (20) <console>:9: error: reassignment to val arrBuffer = (20) ^ scala> arrBuffer += (20) res33: arrBuffer.type = ArrayBuffer(20) scala> arrBuffer += (20,1,2,3,4) res34: arrBuffer.type = ArrayBuffer(20, 20, 1, 2, 3, 4) scala> arrBuffer.trimEnd(3) scala> arrBuffer res36: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(20, 20, 1) scala> arrBuffer.insert(4,200) java.lang.IndexOutOfBoundsException: 4 at scala.collection.mutable.ArrayBuffer.insertAll(ArrayBuffer.scala:139) at scala.collection.mutable.BufferLike$class.insert(BufferLike.scala:167) at scala.collection.mutable.AbstractBuffer.insert(Buffer.scala:49) ... 33 elided scala> arrBuffer.insert(3,200) scala> arrBuffer res39: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(20, 20, 1, 200) scala> arrBuffer.remove(10) res42: Int = 200 scala> arrBuffer res43: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(20, 5, 2, 7, 3, 8 , 4, 9, 20, 1) scala> arrBuffer.remove(6,5) java.lang.IndexOutOfBoundsException: 6 at scala.collection.mutable.ArrayBuffer.remove(ArrayBuffer.scala:158) ... 33 elided scala> arrBuffer.remove(6,4) scala> arrBuffer res46: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(20, 5, 2, 7, 3, 8 ) scala> arrBuffer.toArray res47: Array[Int] = Array(20, 5, 2, 7, 3, 8) scala> arrBuffer res48: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(20, 5, 2, 7, 3, 8 ) scala> arrBuffer.toArray res49: Array[Int] = Array(20, 5, 2, 7, 3, 8) scala> arrBuffer res50: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(20, 5, 2, 7, 3, 8 ) 7. Map scala> val arr2 = Array(1, 1, 3, 4, 10, 11, 100) arr2: Array[Int] = Array(1, 1, 3, 4, 10, 11, 100) scala> arr2.mkString res0: String = 11341011100 scala> arr2.mkString(", ") res1: String = 1, 1, 3, 4, 10, 11, 100 scala> val arr3 = for(t <- arr2) yield t * t arr3: Array[Int] = Array(1, 1, 9, 16, 100, 121, 10000) scala> val arr3 = for(t <- arr2 if t % 3 == 0) yield t * t arr3: Array[Int] = Array(9) scala> arr2.filter(_%3 == 0).map(t +> t * t) <console>:9: error: not found: value t arr2.filter(_%3 == 0).map(t +> t * t) ^ <console>:9: error: not found: value t arr2.filter(_%3 == 0).map(t +> t * t) ^ <console>:9: error: not found: value t arr2.filter(_%3 == 0).map(t +> t * t) ^ scala> arr2.filter(_%3 == 0).map(t => t * t) res3: Array[Int] = Array(9) scala> arr2.filter{_%3 == 0}.map(t => t * t) res4: Array[Int] = Array(9) scala> arr2.filter{_%3 == 0}map(t => t * t) res5: Array[Int] = Array(9) scala> val person = Map("hadoop" -> 11, "spark" -> 6) person: scala.collection.immutable.Map[String,Int] = Map(hadoop -> 11, spark - 6) 8. GetOrElse scala> person("hadoop") res53: Int = 11 scala> person += ("Flink" -> 5) <console>:10: error: value += is not a member of scala.collection.immutable.Ma String,Int] person += ("Flink" -> 5) ^ scala> val sparkValue = if(person.contains("spark")) person("spark") else 100 sparkValue: Int = 6 scala> val sparkValue = erson.getOrElse("spark", 1000) <console>:8: error: not found: value erson val sparkValue = erson.getOrElse("spark", 1000) ^ scala> val sparkValue = person.getOrElse("spark", 1000) sparkValue: Int = 6 scala> for ((key , value) <- person) println (key ":" value) <console>:1: error: ')' expected but string literal found. for ((key , value) <- person) println (key ":" value) ^ scala> for ((key , value) <- person) println (key + ":" + value) hadoop:11 spark:6 scala> for (key <- person.keySet) println (key) hadoop spark 9. tuple scala> val tuple = ("Spark", 6, 99.9) tuple: (String, Int, Double) = (Spark,6,99.9) scala> tuple._1 res6: String = Spark scala> tuple._2 res7: Int = 6 scala> tuple._3 res8: Double = 99.9
Scala学习笔记(一)
最新推荐文章于 2022-11-03 15:28:31 发布
