Scala学习总结

Scala是基于jvm的静态语言。


在定义函数的时候,后面的=的作用:如果函数有返回值的时候必须有“=”,如果没有返回值的时候可以不带“=”。如果没有显示的指定返回值类型,默认Unit.

def add(a:Int,b:Int):Int={
    a+b
}

for循环支持这种格式
for(i <- 1 to 10 if i%2==0){
  println(i)
}
=================================================================================================

类在new出一个对象的时候,会首先执行一遍主类的语句(在new Person的时候会首先执行两个println的语句)。
class Person(var name:String,var age:Int){
  println("this is the person class")
  println("name:"+this.name+"    age:"+this.age)
}
在主构造方法中定义变量的时候,需要带var/val,默认是private(this)。
在继承Person的时候,主构造方法不需要带var/val.
class Student(name:String,age:Int,var bj:String) extends Person(name,age){
  override def toString="tostring method"
}
在重写父类的方法或变量时,需要用关键字overwrite。

case class的使用:
abstract class Animal;
case class Cat(name:String) extends Animal;
case class Dog(name:String) extends Animal;
 object FourDemo extends App{
  def findAnimal(a:Animal){
    a match {
      case Cat(_) => println("this is a cat")
      case Dog(_) => println("this is a dog")
      case _ => println("other")
    }
  }
  findAnimal(Cat("kk"))
 }

========================================================================================

集合:
List集合由head和tail组成。
val list = List(1,2,3,4)
println(list.head)    //1
println(list.tail)    //2,3,4
集合都有可变和不可变两种,可变的集合都在scala.collection.mutable包下面,对list来说。
是ListBuffer。
对可变集合的操作要区分+/-/++/--是会创造一个新的Set,而+=/++=/-=/--=是不会创造一个新
的集合的。

集合中重要的方法:
map/filter/foreach/reduce/flatten/flatMap/sum/max/min
         
         
val list = List(1,2,3,4)
println(list.map(_*2))     //List(2, 4, 6, 8)
println(list.map(_*2).filter(_>2))    //List(4, 6, 8)
list.map(_*2).filter(_>2).foreach(println) //468
println(list.map(_*2).filter(_>2).reduce(_+_))
val list2=List("a","b","c")
println(list zip list2)    //List((1,a), (2,b), (3,c))
val list3=List(List(1,2),List(3,4),List(5))
println(list3.flatten)      //List(1, 2, 3, 4, 5)
println(list3.flatMap(_.map(_*2)))  // List(2, 4, 6, 8, 10)
println(list.sum)   //10




 

~~~~~持续更新中~~~~~~



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值