打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
3000门徒内部训练绝密视频(泄密版)第1课:大数据最火爆语言Scala光速入门

scala 可以使用java的库
scala 的工厂方法:apply
条件表达式有返回值
数组可以用to ,箭头 <-
最后一行内容的值是整个代码块的返回值
def函数 定义函数,调用不按顺序
函数:def 函数名,参数名:类型名,可以设定默认值,后可跟=号,如def f1 ( param1:String, param2: Int = 30) = param1 + param2
有默认值的参数调用时可以不加参数,另外调用时如果指定参数名的话可以不考虑参数顺序。
参数数量可变:def sum(numbers:Int*) *表示变长 调用时不可sum(0 to 100) ,因为0 to 100是range类型,而参数中要求是变量,但是可以用 0 to 100 _* ,表示变成多个值

过程:无返回值的函数,定义函数返回值为Unit,在参数列表之后加上:Unit ,或者将函数定义后的=改变成花括号

lazy 类型:第一次被定义时计算

异常

try {    val content = fromFile("/usr/local/spark/sfijweoijgr/")}catch{    case _: FileNotFoundException => println("Ooooops!!! File not found")} finally {    println("Byebye world!")}

集合
数组val arr = new ArrayInt

ArrayBuffer的insert,remove方法

scala> val arr1 = Array("Scala","Spark")arr1: Array[String] = Array(Scala, Spark)scala> val arr1 = Array.apply("Scala","Spark")arr1: Array[String] = Array(Scala, Spark)scala> Arrayres3: Array.type = scala.Array$@54d18072scala> arr1(2) = "Hadoop"java.lang.ArrayIndexOutOfBoundsException: 2  ... 33 elidedscala> val arrbuf = ArrayBuffer[Int]()<console>:7: error: not found: value ArrayBuffer       val arrbuf = ArrayBuffer[Int]()                    ^scala> import scala.collection.mutable.AAVLIterator      AbstractIterable   AbstractSet   ArrayBuilder   ArraySeq     AVLTree          AbstractMap        AnyRefMap     ArrayLike      ArrayStack   AbstractBuffer   AbstractSeq        ArrayBuffer   ArrayOps                    scala> import scala.collection.mutable.ArrayArrayBuffer   ArrayBuilder   ArrayLike   ArrayOps   ArraySeq   ArrayStackscala> import scala.collection.mutable.ArrayBuArrayBuffer   ArrayBuilderscala> import scala.collection.mutable.ArrayBufferimport scala.collection.mutable.ArrayBufferscala> val arrbuf = ArrayBuffer[Int]()arrbuf: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer()scala> arrbuf += 10res5: arrbuf.type = ArrayBuffer(10)scala> arrbufres6: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(10)scala> arrbuf(1)java.lang.IndexOutOfBoundsException: 1  at scala.collection.mutable.ResizableArray$class.apply(ResizableArray.scala:43)  at scala.collection.mutable.ArrayBuffer.apply(ArrayBuffer.scala:48)  ... 33 elidedscala> arrbuf += ( 12,23,35,56)res8: arrbuf.type = ArrayBuffer(10, 12, 23, 35, 56)scala> arrbufres9: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(10, 12, 23, 35, 56)scala> arrbuf ++= Array(1,2,3,4)<console>:1: error: illegal character '\uff08'       arrbuf ++= Array(1,,2,3,4)                       ^<console>:1: error: illegal character '\uff0c'       arrbuf ++= Array(1,,2,3,4)                         ^scala> arrbuf ++= Array(1,2,3,4)res10: arrbuf.type = ArrayBuffer(10, 12, 23, 35, 56, 1, 2, 3, 4)scala> arrbufres11: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(10, 12, 23, 35, 56, 1, 2, 3, 4)scala> arrbuf.ttail        takeWhile   toIndexedSeq   toMap      toString        transpose   tails       to          toIterable     toSeq      toTraversable   trimEnd     take        toArray     toIterator     toSet      toVector        trimStart   takeRight   toBuffer    toList         toStream   transform                   scala> arrbuf.ttail        takeWhile   toIndexedSeq   toMap      toString        transpose   tails       to          toIterable     toSeq      toTraversable   trimEnd     take        toArray     toIterator     toSet      toVector        trimStart   takeRight   toBuffer    toList         toStream   transform                   scala> arrbuf.trimtrimEnd   trimStartscala> arrbuf.trimtrimEnd   trimStartscala> arrbuf.trimEnd(3)scala> arrbufres13: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(10, 12, 23, 35, 56, 1)scala> arrbufres14: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(10, 12, 23, 35, 56, 1)scala> arrbuf.inindexOf        indexWhere   init    insert      intersect   indexOfSlice   indices      inits   insertAll               scala> arrbuf.insert(4,100)scala> arrbufres16: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(10, 12, 23, 35, 100, 56, 1)scala> arrbuf.insert(6,7,8,9)scala> arrbufres18: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(10, 12, 23, 35, 100, 56, 7, 8, 9, 1)scala> arrbuf.remove(0)res19: Int = 10scala> arrbufres20: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(12, 23, 35, 100, 56, 7, 8, 9, 1)scala> arrbuf.remove(1,2)scala> arrbufres22: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(12, 100, 56, 7, 8, 9, 1)scala> val arr2 = arrbuf.toArrayarr2: Array[Int] = Array(12, 100, 56, 7, 8, 9, 1)scala> arr2.toBufferres23: scala.collection.mutable.Buffer[Int] = ArrayBuffer(12, 100, 56, 7, 8, 9, 1)scala> arr2.toString   def toString(): Stringscala> arr2.toBufferres24: scala.collection.mutable.Buffer[Int] = ArrayBuffer(12, 100, 56, 7, 8, 9, 1)scala> for ( elem <- arr2) { elem}scala> for ( elem <- arr2) {println(elem)}12100567891scala> for( i <- 1 until (arr2.length,1)) println(arr2(i))100567891scala> for( i <- 1 until (arr2.length,2)) println(arr2(i))10079scala> for( i <- 0 until (arr2.length,2)) println(arr2(i))125681scala> for( i <- 0 until (arr2.length,2)) println(arr2(i))125681scala> arr2res31: Array[Int] = Array(12, 100, 56, 7, 8, 9, 1)scala> for(i <- (0 until arr2.length).reverse) println(arr2(i))19875610012scala> import scala.util.Sorting._import scala.util.Sorting._scala> quickSort(arr2)scala> arr2res34: Array[Int] = Array(1, 7, 8, 9, 12, 56, 100)scala> val arr3 = for(i <- arr2) yield i*iarr3: Array[Int] = Array(1, 49, 64, 81, 144, 3136, 10000)scala> val arr4 = for(i <- arr2 if i%3 == 0) yield i*iarr4: Array[Int] = Array(81, 144)scala>  arr2.filter(_%3 ==0).map(i => i*i)res35: Array[Int] = Array(81, 144)scala>  arr2.filter{_%3 ==0}.map{i => i*i}res36: Array[Int] = Array(81, 144)scala>  arr2.filter{_%3 ==0}map{i => i*i}res3: Array[Int] = Array(144, 81)

yield 把后面的每一个元素收集起来并组拼成一个集合

作业:删掉数组中第一个负数后面的所有负数

scala> val person = Map("Spark" ->6, "Hadoop" -> 11)person: scala.collection.immutable.Map[String,Int] = Map(Spark -> 6, Hadoop -> 11)scala> person("Hadoop")res4: Int = 11scala> val person = scala.collection.mutable.Map("Spark" ->6, "Hadoop" -> 11)person: scala.collection.mutable.Map[String,Int] = Map(Hadoop -> 11, Spark -> 6)scala> person += ("Flink" -> 5)res5: person.type = Map(Hadoop -> 11, Spark -> 6, Flink -> 5)scala> person -= "Flink"res6: person.type = Map(Hadoop -> 11, Spark -> 6)scala> val sparkValue = if (person.contains("Spark")) person("Spark") else 1000sparkValue: Int = 6scala> val sparkValue = person.getOrElsegetOrElse   getOrElseUpdatescala> val sparkValue = person.getOrElse("Spark", 1000)sparkValue: Int = 6scala> val sparkValue = person.getOrElse("Flink", 1000)sparkValue: Int = 1000scala> for((key,value) <- person) println(key+":"+value)Hadoop:11Spark:6scala> for((key,value) <- person) println(key+":")Hadoop:Spark:scala> val person = scala.collection.mutable.S.Map("Spark" ->6, "Hadoop" -> 11)Seq          SetProxy        Subscriber                  SynchronizedSet     SeqLike      SortedSet       SynchronizedBuffer          SynchronizedStack   Set          Stack           SynchronizedMap                                 SetBuilder   StackProxy      SynchronizedPriorityQueue                       SetLike      StringBuilder   SynchronizedQueue                               scala> val person = scala.collection.immutable.S.Map("Spark" ->6, "Hadoop" -> 11)Seq   SetProxy    SortedSet   Stream           StreamView       StringLike   Set   SortedMap   Stack       StreamIterator   StreamViewLike   StringOps    scala> val person = scala.collection.immutable.SortedMap("Spark" ->6, "Hadoop" -> 11)person: scala.collection.immutable.SortedMap[String,Int] = Map(Hadoop -> 11, Spark -> 6)TUPLE:scala> val tuple = ("Spark", 6, 99.0)tuple: (String, Int, Double) = (Spark,6,99.0)scala> tuple._1res9: String = Sparkscala> tuple._2res10: Int = 6scala> tuple._3res11: Double = 99.0
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
函数+map映射+元祖
Scala Data Structure
Scala教程(二十)For循环模式匹配与表达式
Spark笔记:RDD基本操作(上)
Scala 系列(六)—— 常用集合类型之 List & Set
scala
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服