scala编程基础学习笔记

值和变量

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"
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • lang 2.1.和Java的异同 2.1.1.语法 Java++:增加的语法 -》纯OO;操作符重载;closu...
    时待吾阅读 7,032评论 0 0
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,358评论 0 33
  • FP 3.1.函数 函数的地位和一般的变量是同等的,可以作为函数的参数,可以作为返回值。传入函数的任何输入是只读的...
    时待吾阅读 4,753评论 0 2
  • 变量初始化可以用用 _ 作占位符,赋值为默认值,字符串 null,Float、Int、Double 等为 0var...
    FaDeo_O阅读 4,514评论 0 0
  • scala学习笔记 第2章 变量和数据类型 基本数据 scala的核心数据为四种 :字面量、值、变量、类型 值使...
    485b1aca799e阅读 6,485评论 0 1

友情链接更多精彩内容