![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
scala系列
mojolang
精品驿站
展开
-
scala 系列 ----使用Option、Either和Try处理数据交互
Scala数据交互Scala使用一种函数式的方式来处理数据交互,包括入参及返回值。Option: 解决null(空指针)问题Either: 解决返回值不确定(返回两个值的其中一个)问题 Try: 解决函数可能会抛出异常问题Option/Some/None的使用Option实际上有3个类型:Option、Some和None,Some和None都是Option的子类型,Some和None。Option表示可选的值,它的返回类型是scala.Some或scala.None。Some代表返回转载 2021-01-29 17:57:32 · 437 阅读 · 0 评论 -
Scala方法可变长度参数与:_*和@的含义、使用
Scala 允许函数的最后一个参数可以是重复的。这可以允许用户向函数传入可变长度参数列表。想要声明一个重复参数,在参数的类型之后放一个星号。例如:scala> def echo(args: String*) = for (arg <- args) println(arg) 这样定义, echo 可以被零个至多个 String 参数调用:scala> echo()scala> echo("one")onescala> echo("hello", "worl..转载 2021-01-27 12:02:47 · 950 阅读 · 0 评论 -
scala 系列 ----集合综合篇
一.本章要点所有集合都扩展自Iterable特质; 集合有三大类,分别为序列,集和映射; 对于几乎所有集合类,Scala都同时提供可变和不可变的版本; Scala列表要么是空的,要么拥有一头一尾,其中尾部本身是一个列表; 集是无小猴次序的集合; 用LinkedHashSet来保留插入顺序,或者用SortedSet来顺序进行迭代; +将元素添加到无先后次序的集合中;+:和:+向前或向后追加到序列;++将两个集合串接在一起;-和--移除元素; Iterable和Seq特质有数十个用于常见操作的转载 2021-01-21 12:46:24 · 328 阅读 · 0 评论 -
scala 系列 ---- 流 Stream、视图 View、线程安全的集合、并行集合的使用详解用法及代码示例
流 Streamstream是一个集合。这个集合,可以用于存放无穷多个元素,但是这无穷个元素并不会一次性生产出来,而是需要用到多大的区间,就会动态的生产,末尾元素遵循lazy规则(即:要使用结果才进行计算的) 。创建Stream对象def numsForm(n: BigInt) : Stream[BigInt] = n #:: numsForm(n + 1)val stream1 = numsForm(1)说明Stream 集合存放的数据类型是BigIntnumsForm 是自定转载 2021-01-20 19:57:47 · 471 阅读 · 0 评论 -
scala 系列 ---- take,takeRight,takeWhile的使用详解用法及代码示例
take : takeRight(n: Int): List[A] 提取列表的前n个元素 takeRight: takeRight(n: Int): List[A] 提取列表的最后n个元素 takeWhile: takeWhile(p: (A) ⇒ Boolean): List[A] 从左向右提取列表的元素,直到条件p不成立 val nums = List(1,2,3,4,5,6,7,8) println(nums) val leftNums = nums.take(2) .原创 2021-01-20 14:19:45 · 2737 阅读 · 0 评论 -
scala 系列 ---- scan,scanLeft,scanRight的使用详解用法及代码示例
scan[B >: A, That](z: B)(op: (B, B) ⇒ B)(implicit cbf: CanBuildFrom[List[A], B, That]): That由一个初始值开始,从左向右,进行积累的op操作scanLeft,scanRightscanLeft: scanLeft[B, That](z: B)(op: (B, A) ⇒ B)(implicit bf: CanBuildFrom[List[A], B, That]): ThatscanRight: s原创 2021-01-20 11:29:41 · 1870 阅读 · 0 评论 -
scala 系列 ---- fold,foldLeft,foldRight的使用详解用法及代码示例
fold与reduce基本一样,只是需要一个指定初始值参数,注意这个时候计算把初始值作为一个元素开始计算。 val ar1 = List(1, 2, 3, 4, 5) println("fold(0)=",ar1.fold(0)(_ + _)) println("fold(100)=",ar1.fold(100)(_ + _)) println("foldLeft(0)=",ar1.foldLeft(0)(_-_)) println("fol原创 2021-01-19 18:16:23 · 1939 阅读 · 0 评论 -
scala 系列 ---- educeLeft和reduceRight用法及代码示例
以给定顺序将二元操作应用到所有元素,可以将一个列表中的数据合并为一个。这种操作经常用来统计分析中。而map是对集合的元素进行加工操作,不改变集合的结构。初始值和操作符是两个分开定义的“柯里化”参数,这样Sca la 就能用初始值的类型来推断出操作符的类型定义。举例来说,在List(l , 7, 2 ,9) . foldLeft (””)(-+-)中,初始值是一个字符串,因此操作符必定是一个类型定义为( Stri ng, Int) => String 的函数。你也可以用/:操作符来写f oldL原创 2021-01-19 17:58:37 · 240 阅读 · 0 评论 -
scala 系列 ---- transform()用法及代码示例
transform()方法用于将SortedMap的元素转换为可变的SortedMap函数定义:def transform(f: (K, V) => V): SortedMap.this.type返回类型:It transforms all the elements of the SortedMap and returns them into a mutable SortedMap.范例1:// Scala program of transform() // method i..原创 2021-01-19 17:31:58 · 1512 阅读 · 0 评论