您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 深圳分类信息网,免费分类信息发布

深圳大数据学习:Scala系列之样例类_Option_偏函数

2019/11/16 4:48:23发布140次查看
深圳大数据学习:scala系列之样例类_option_偏函数
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:valheight=1.9dvalname="james"println(f" {1 + 1}")// 1 + 1 = 2插值f 可以对字符串进行格式化,类似printf:val height = 1.9dval name = "james"println(f"1+1")//1+1=2插值f可以对字符串进行格式化,类似printf:valheight=1.9dvalname="james"println(f"name%s is $height%2.2f meters tall") // james is 1.90 meters tall
raw类似于s,但是raw对字符串内容不作任何的转换:
scala> s"ab"
res0: string =
a
b
scala> raw"ab"
res1: string = ab

深圳分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录