Scala学习笔记(一)

来源:互联网 发布:按键精灵 查询数据库 编辑:程序博客网 时间:2024/05/29 09:14
一、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> arrayres8: Array[Int] = Array(1, 2, 3, 4)scala> val age = 19age: Int = 19scala> if(age >= 18) "man" else "boy"res9: String = manscala> val result = if(age >= 18) "man" else "boy"result: String = man2. scala中块表达式的最后一行的值就是最后一行的值。3. readLine读取数据方法:scala> readLinewarning: there was one deprecation warning; re-run with -deprecation for detailsres11: String = please enter uscala> readLine("how are u")warning: there was one deprecation warning; re-run with -deprecation for details4. 变长参数问题scala> def sum(numbers : Int*) = {var result = 0; for(elsement <- numbers) result += elsement; result}sum: (numbers: Int*)Intscala> sum(1,2,3,4,5,6,7,8,9)res26: Int = 45scala> sum(1 to 100 : _*)res27: Int = 50505. lazy在第一次调用的时候才会赋值6. ArrayBuffer 及其操作scala> val arrBuffer = ArrayBuffer[Int]()<console>:7: error: not found: value ArrayBuffer       val arrBuffer = ArrayBuffer[Int]()                       ^scala> import scala.collection.mutable.ArrayBufferimport scala.collection.mutable.ArrayBufferscala> 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> arrBufferres36: 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 elidedscala> arrBuffer.insert(3,200)scala> arrBufferres39: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(20, 20, 1, 200)scala> arrBuffer.remove(10)res42: Int = 200scala> arrBufferres43: 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 elidedscala> arrBuffer.remove(6,4)scala> arrBufferres46: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(20, 5, 2, 7, 3, 8)scala> arrBuffer.toArrayres47: Array[Int] = Array(20, 5, 2, 7, 3, 8)scala> arrBufferres48: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(20, 5, 2, 7, 3, 8)scala> arrBuffer.toArrayres49: Array[Int] = Array(20, 5, 2, 7, 3, 8)scala> arrBufferres50: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(20, 5, 2, 7, 3, 8)7. Mapscala> val arr2 = Array(1, 1, 3, 4, 10, 11, 100)arr2: Array[Int] = Array(1, 1, 3, 4, 10, 11, 100)scala> arr2.mkStringres0: String = 11341011100scala> arr2.mkString(", ")res1: String = 1, 1, 3, 4, 10, 11, 100scala> val arr3 = for(t <- arr2) yield t * tarr3: Array[Int] = Array(1, 1, 9, 16, 100, 121, 10000)scala> val arr3 = for(t <- arr2 if t % 3 == 0) yield t * tarr3: 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. GetOrElsescala> person("hadoop")res53: Int = 11scala> person += ("Flink" -> 5)<console>:10: error: value += is not a member of scala.collection.immutable.MaString,Int]              person += ("Flink" -> 5)                     ^scala> val sparkValue = if(person.contains("spark")) person("spark") else 100sparkValue: Int = 6scala> 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 = 6scala> 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:11spark:6scala> for (key  <- person.keySet) println (key)hadoopspark9. tuplescala> val tuple = ("Spark", 6, 99.9)tuple: (String, Int, Double) = (Spark,6,99.9)scala> tuple._1res6: String = Sparkscala> tuple._2res7: Int = 6scala> tuple._3res8: Double = 99.9
0 0
原创粉丝点击