scala基础学习

package day01
class test1 {

}
/*
object 静态类
var 不可变化
val 变量不可以变化
scala推荐我们使用val,不可以赋值
scala数据类型:(scala没有引用类型)byte char short int long float double
*/
object Test1{
  def main(args: Array[String]): Unit = {
    var str = "hello world"
    val str2:String ="hello scsla"
    println(str)
    println(str2)



    /*scala if judge sentence*/
    val x = 3
    val y = if(x>1) 1 else -1



    /*scala if judge sentence*/
    val y2 = if(x>10) 1 else if(x>1) "hehe" else -1
    println(y)
    println(y2)
    for (i <- 1 to 10){
      println(i)
    }
    val arr=Array("java","scala","python","VBA")
    for (i <- arr){
      println(i)
    }



    /*scala advance for loop*/
    for (i <- 1 to 3;
         j <- 1 to 3
         if(i != j)){
      println(i * 10 + j)}



    /*scala advance for loop高级for循环
    yield会自己创建集合,把每次循环的值放到结合里  vector 矢量
    */
    val res = for(i <- 1 until 10) yield i
    println(res)



    /*
      scala 的function
      python 也是def function
      java 是public 方法名
      一定要注意scala 和 java 都区分大小写,尤其scala 的数据类型都要注意,比如Int 首字母要大写,不然报错!!!!
      scala的方法  很  function 不是一回事
      def 是方法
      函数是 val myfunction1 = (x:Int, y: Int) => x + y
      */
    def ml(x: Int, y: Int):Int = x + y
    println(ml(1,2),"this is first method,mehod可以把function传进来作为参数")



    /*
    scala的 function
    函数是 val myfunction1 = (x:Int, y: Int) => x + y
    函数这个小箭头跟PQ的M语言一模一样,,,世界之大尽在scala
    */
    val fuc1=(x:Int,y: Int) => x + y
    println(fuc1(2,3),"this is first function,function可以作为参数放到 method里面,method类似于sql里面的procedure")

    //method 跟  function 一起使用
    val f1=(x: Int,y: Int) => x+y
    def m1(f: (Int,Int) => Int)=f(3,4)
    println(m1(f1),"m1方法引用了f1方法!!!")
    
    //方法转换成函数,这样就可以转换了
    val f3=m3 _
    
    //scala 如果方法里面传 方法   那么scala会吧方法转换成函数,继续执行
    m3(m2)






  }
}

你可能感兴趣的:(scala基础学习)