温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

好程序员大数据教程分享Scala系列之Option_偏函数_String

发布时间:2020-07-17 05:31:07 来源:网络 阅读:151 作者:wx5da18b5c4b01e 栏目:大数据

好程序员大数据教程分享Scala系列之Option_偏函数_String
Option类型
在Scala中Option类型样例类用来表示可能存在或也可能不存在的值(Option的子类有Some和None)。Some包装了某个值,None表示没有值。

object OptionDemo {
def main(args: Array[String]) {
val map = Map("a" -> 1, "b" -> 2)
val v = map.get("b") match {
case Some(i) => i
case None => 0
}
println(v)
//更好的方式
val v1 = map.getOrElse("c", 0)
println(v1)
}
}

偏函数
被包在花括号内没有match的一组case语句是一个偏函数,它是PartialFunction[A, B]的一个实例,A代表参数类型,B代表返回类型,常用作输入模式匹配

object PartialFunctionDemo {
def f: PartialFunction[String, Int] = {
case "one" => 1
case "two" => 2
// case _ => -1
}

def main(args: Array[String]) {
//调用f.apply("one")
println(f("one"))
println(f.isDefinedAt("three"))
//抛出MatchError
println(f("three"))
}
}String INTERPOLATION(字符串插值)(备选)
用途:处理字符串 类型:

s:字符串插值
f:插值并格式化输出
raw:对字符串不作任何变换的输出
Scala 2.10.0之后,引入一种新的创建字符串的机制,即 String Interpolation. 它允许用户直接在字符串中嵌入变量的引用。

val name="James"
println(s"Hello,$name") // Hello, James

字符串插值的位置也可以放表达式,如下:

println(s"1 + 1 = ${1 + 1}")// 1 + 1 = 2

插值f 可以对字符串进行格式化,类似printf:

val height = 1.9d
val name = "James"
println(f"$name%s is $height%2.2f meters tall") // James is 1.90 meters tall

raw类似于s,但是raw对字符串内容不作任何的转换:

scala> s"a\nb"
res0: String =
a
b

scala> raw"a\nb"
res1: String = a\nb

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI