100行代码入门Scala

来源:互联网 发布:晒书房 知乎 编辑:程序博客网 时间:2024/06/16 05:14

100行代码入门scala

//定义类,传入变量默认实现get set方法class People(var name:String, var age:Int) {    //默认构造函数     println("get people one")     name+="_name"     var company = "abc"          //自定义构造函数     def this(name:String, age:Int,company:String) {        this(name,age)              this.company = company      }          def incage(count:Int){       age += count       if (age >100) {         age =100       }     }          def deage(count:Int){       age -= count       if (age < 0) {          age = 0       }     }     //返回值为String,无返回值可以不写     def toStr():String ={         "name:"+name+" age:"+age     }}object TestOne {    // 无返回值可以返回值写Unit,也可以不写     def main(args: Array[String]): Unit = {        var p1 = new People("long", 32)        p1.incage(2)        println(p1.name)        println(p1.age)        println(p1.company)                //定义一个不可更改String元素        val name : String = "tian"        //定义一个可以更改值的int变量        var age : Int = 28                var p2 = new People(name, 28, "hy")        p2.deage(2)        println(p2.name)        println(p2.age)        println(p2.company)               for (i<-10 to 1 by -1) {            p2.deage(i)            println(p2.toStr())        }                //定义列表        val numList = List(2,3,4,5,6,10,12,17,18,9)        //末尾缀加,形成新列表        var x = 1 :: numList        //开头缀加形成新列表        var y = numList :+ 66        println(x)        println(y)             for (j<-numList){            p1.incage(j)            println(p1.toStr())        }        //定长数组        var myList = Array(1.9, 2.9, 3.4, 3.5)               myList(2)=8.8        for ( x <- myList.reverse) {           println( x )        }          //list,array默认是定长的,需要动态扩容可用 ArrayBuffer,ListBuffer;   import scala.collection.mutable.ArrayBuffer  import scala.collection.mutable.ListBuffer               //var s = Set("long","tian","zhang")        var s: Set[String] = Set("long","tian","yang")        s+="wang"        for (x <- s) {          println(x)        }               // var A:Map[String,Int] = Map()       var A = Map("long" -> 32, "tian" -> 28)       //追加元素       A += ("yang" -> 18)       //重写元素       A += ("yang" -> 20)       //判断元素是否存在,存在则获取打印元素       if (A.contains("yang")){         println(A("yang"))       }       A.keys.foreach{key=>          print("name="+key)         println("  age="+A(key))}     }}
运行以及结果

D:\>scalac TestOne.scalaD:\>scala TestOneget people onelong_name34abcget people onetian_name26hyname:tian_name age:16name:tian_name age:7name:tian_name age:0name:tian_name age:0name:tian_name age:0name:tian_name age:0name:tian_name age:0name:tian_name age:0name:tian_name age:0name:tian_name age:0List(1, 2, 3, 4, 5, 6, 10, 12, 17, 18, 9)List(2, 3, 4, 5, 6, 10, 12, 17, 18, 9, 66)name:long_name age:36name:long_name age:39name:long_name age:43name:long_name age:48name:long_name age:54name:long_name age:64name:long_name age:76name:long_name age:93name:long_name age:100name:long_name age:1003.58.82.91.9longtianyangwang20name=long  age=32name=tian  age=28name=yang  age=20

原创粉丝点击