好程序员大数据教程Scala系列之样例类_Option_偏函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了好程序员大数据教程Scala系列之样例类_Option_偏函数相关的知识,希望对你有一定的参考价值。

程序员大数据教程Scala系列之样例类_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 b"
res0: String =
a
b

scala> raw"a b"
res1: String = a b

以上是关于好程序员大数据教程Scala系列之样例类_Option_偏函数的主要内容,如果未能解决你的问题,请参考以下文章

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

2021年大数据常用语言Scala(三十二):scala高级用法 样例类

必会Scala之模式匹配和样例类

快学Scala(14)--模式匹配和样例类

Scala快速入门--样例类

Scala笔记整理:模式匹配和样例类