美文网首页
scala编程基础学习笔记

scala编程基础学习笔记

作者: zhangxu0636 | 来源:发表于2016-07-12 11:06 被阅读18次

    值和变量

    val定义的变量是不可变的,如果想用可变的变量,则用var

    当我们用给three变量用val赋值的时候,想要给它重新赋值,则会报错。

    val three = 3
    three = 4
    

    下面的代码赋值是不会报错的

    var three = 3
    three = 4
    

    函数

    • 创建
      用def定义,参数的类型用:分隔,返回值则写在最后。
    def onePlusOne(one: Int, Other: Int): Int = one + Other
    
    • 匿名函数
    val paramPlus = (param: Int) => param + 1
    
    • 如果一个函数中有多个表达式的时候该怎么办呢?看下面
    def test(x: Int): Int = {  
        println("Hello Scala")  
        x * 3 //最后一个为返回值
    }
    

    匿名函数也是一样的

    val ann = {  
         x: Int =>    println("Hello Scala")
         x * 3
    }
    

    部分应用

    使用下划线“_”部分应用一个函数,结果将得到另一个函数

    def multiply(m:Int,n:Int) = m * n
    val mul2 = multiply(2, _: Int)
    mul2(4)
    

    柯里化函数

    方便我们可能在不同的场景传入不同的参数。

    def add(m:Int)(n:Int):Int = m + n
    val add2 = add(2)_
    add2(5)
    

    模式匹配

    • 值匹配
    val value = 2
    value  match {
      case 1 => "one"
      case 2 => "two"
      case _ => "some other number"
    }
    
    • 守卫匹配,值会传递给我们给case定义的变量i
    value match {
      case i if i == 1 => "one"
      case i if i == 2 => "two"
      case _ => "some other number"
    }
    
    • 类型匹配
    def bigger(o: Any): Any = {
      o match {
        case i: Int if i < 0 => i - 1
        case i: Int => i + 1
        case d: Double if d < 0.0 => d - 0.1
        case d: Double => d + 0.1
        case text: String => text + "s"
      }
    }
    

    相关文章

      网友评论

          本文标题:scala编程基础学习笔记

          本文链接:https://www.haomeiwen.com/subject/jzgjjttx.html