学习
实践
活动
工具
TVP
写文章

好程序员大数据教程分享Scala系列之Option

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

Option类型

好程序员大数据教程

在Scala中Option类型样例类用来表示可能存在或也可能不存在的值(Option的子类有Some和None)。Some包装了某个值,None表示没有值。

objectOptionDemo {

defmain(args: Array[String]) {

valmap = Map("a" -> 1, "b" -> 2)

valv = map.get("b")match{

caseSome(i) => i

caseNone => 0

}

println(v)

//更好的方式

valv1 = map.getOrElse("c", 0)

println(v1)

}

}

偏函数

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

objectPartialFunctionDemo {

deff: PartialFunction[String, Int] = {case"one" => 1case"two" => 2// case _ => -1}defmain(args: Array[String]) {//调用f.apply("one")println(f("one"))println(f.isDefinedAt("three"))//抛出MatchErrorprintln(f("three"))}}String INTERPOLATION(字符串插值)(备选)

用途:处理字符串 类型:

• s:字符串插值

• f:插值并格式化输出

• raw:对字符串不作任何变换的输出

Scala 2.10.0之后,引入一种新的创建字符串的机制,即 String Interpolation. 它允许用户直接在字符串中嵌入变量的引用。

valname="James"

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

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

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

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

valheight = 1.9d

valname = "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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191014A0FC6G00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券