微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Scala入门9之函数高级操作【字符串高级操作、匿名函数、柯里化(Currying)函数、高阶函数】

Scala函数高级操作

1、字符串高级操作

1.1 定义字符串

\quad \quad scala提供多种定义字符串的方式,将来我们可以根据需要来选择最方便的定义方式。

  • 使用双引号
  • 使用三引号

使用双引号——适用于少量内容

语法

var/val 变量名="字符串”

使用三引号

\quad \quad 如果有大段的文本需要保存,就可以使用三引号来定义字符串。例如:保存一大段的sql语句。三 个引号中间的所有字符串都将作为字符串的值。

语法

val/var 变量名 = """字符串1
 字符串2"""
  • 快捷技巧:shift+分号按三下就能出现三引号

例子:

object StringApp extends App {

  val b =
    """
      |这是一个多行字符串
      |hello
      |word
      |""".stripMargin

  println(b)

  
}

结果:

在这里插入图片描述

1.2 字符串拼接

字符串拼接有两种方式:

  • + :以前,字符串的拼接我们往往使用+来拼接
  • 插值法:
    语法
s"${字符串1}${字符串2}"// 大括号可以省略

例子:

object StringApp extends App {
  val s="Hello:"
  val name="PK"

  println(s)
  println(s+name)
  // 插值
  println(s"$s$name")
}

结果:

在这里插入图片描述

2、匿名函数

\quad \quad 在Scala中,你不需要给每一个函数命名,没有将函数赋给变量的函数叫做匿名函数

语法

(参数名:参数类型)=>函数

例子:

scala> (x:Int) => x+1
res7: Int => Int = <function1>

匿名函数的作用

scala> val m1=(x:Int) => x+1
m1: Int => Int = <function1>
scala> m1(10)
res8: Int = 11
scala> def add=(x:Int,y:Int) => {x+y}
add: (Int, Int) => Int

scala> add(2,3)
res9: Int = 5

3、柯里化(Currying)函数

\quad \quad 柯里化(Currying)指的是把原来接受多个参数的函数变换成接受一个参数的函数过程,并且返回接受余下的参数且返回结果为一个函数的技术。

语法

def 函数名(参数1:参数1类型)(参数2:参数2类型):返回值类型={
// 代码块
}
  • 返回值类型可以不写
    例子
object StringApp extends App {
  //非柯里化(Currying)函数
  def sum(a:Int,b:Int)=a+b
  println(sum(2,3))
  //柯里化(Currying)函数
  def sum2(a:Int)(b:Int)=a+b
  println(sum2(2)(3))

}
  • scala柯里化风格的使用可以简化主函数的复杂度,提高主函数的自闭性,提高功能上的可扩张性、灵活性。可以编写出更加抽象,功能化和高效的函数代码

4、高阶函数

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐