scala的reduceRight操作?

怎样理解如下的结果?

scala> val list = List(1,2,3,4,5)

scala> list.reduceRight(_ - _)

res26: Int = 3

执行过程如下:

(1 - ( 2 - ( 3 - ( 4 - 5 ))))

官方文档说明:

op(x_1, op(x_2, ..., op(x_{n-1}, x_n)...))

where x1, ..., xn are the elements of this mutable indexed sequence.

文档地址:

https://www.scala-lang.org/api/current/scala/Array.html#reduceRight[B>:A](op:(A,B)=>B):B

时间: 2024-11-08 21:10:12

scala的reduceRight操作?的相关文章

Scala函数高级操作

字符串高级操作:***** 非常重要 将函数赋值给变量/值def sayHello(name:String): Unit = { println(s"Hello:$name")} object StringApp extends App { val s = "Hello:PK" val name = "PK" //println(s + name) println(s"Hello:$name") val team = &quo

scala 基本类型和操作

基本类型和操作========================类型说明,与java一致值类型 范围 Byte 8位有符号补码整数(-27-27-1) Short 16位有符号补码整数(-215-215-1) Int 32位有符号补码整数(-231-231-1) Long 64位有符号补码整数(-263-263-1) Char 16位无符号Unicode字符(0-216-1) String 字符序列 Float 32位IEEE754单精度浮点数 Double 64位IEEE754单精度浮点数 Bo

scala json相关操作

一.前言 目前准备编写一个scala项目基础类库,有这样一个需求,将String类型的Json转为Map或其他扩展对象. 二.几种方法探讨 1)scala自带的Json解析 scala 2.10(以上,其他版本不清楚)自带Json解析,scala.util.parsing.json.JSON 使用方法如下: val json = JSON.parseFull(string) 作为一个python,php转过来的同学,期待这句话的执行结果是一个Map(json),Map里面按照实际的字符串解析成一

Scala的XML操作

 8.  XML 8.1.     生成 Scala原生支持xml,就如同Java支持String一样,这就让生成xml和xhtml很简单优雅: val name = "james" val age = 10 val html = <html>name={name}, age="{age}"</html> toString // <html>name=james, age="10"</html>

Scala实现REST操作

// Compile in sbt // Run in sbt>run get https://raw.githubusercontent.com/nraychaudhuri/scalainaction/master/ chap02/breakable.scala // // The command line in sbt is // >run (post | get | delete | options) -d <request parameters comma separated -

Programming in scala学习笔记(二)Next steps in scala

1 声明一个数组 Java的string数组声明如下: String[] greetStrings = new String()[4]; 数组索引跟java和c++/c语言不一样的是不用"[ ]",用"( )". 也可以用比较繁琐的方式声明数组: greetStrings是val常量,只能指向同一个Array对象,但是,greetStrings(0-2)的值是可变的. 2. 关于数组为什么不用"[ ]",用"( )" Arra

Scala入门到精通——第十三节 高阶函数

本节主要内容 高阶函数简介 Scala中的常用高阶函数 SAM转换 函数柯里化 偏函数 1. 高阶函数简介 高阶函数主要有两种:一种是将一个函数当做另外一个函数的参数(即函数参数):另外一种是返回值是函数的函数.这两种在本教程的第五节 函数与闭包中已经有所涉及,这里简单地回顾一下: (1)函数参数 //函数参数,即传入另一个函数的参数是函数 //((Int)=>String)=>String scala> def convertIntToString(f:(Int)=>String

scala集合与数据结构

1.数据结构特点 Scala同时支持可变集合和不可变集合,不可变集合从不可变,可以安全的并发访问. 两个主要的包: 不可变集合:scala.collection.immutable 可变集合: scala.collection.mutable Scala优先采用不可变集合,对于几乎所有的集合类,Scala都同时提供了可变和不可变的版本. 不可变集合继承层次: 可变集合继承层次: 2.数组 2.1.定义定长数组 我们可以定义一个固定长度大小和类型的定长数组 //定义一个数组长度为10,类型为Int

Scala入门到精通——第十节 Scala类层次结构、Traits初步

本节主要内容 Scala类层次结构总览 Scala中原生类型的实现方式解析 Nothing.Null类型解析 Traits简介 Traits几种不同使用方式 1 Scala类层次结构 Scala中的类层次结构图如下: 来源:Programming in Scala 从上面的类层次结构图中可以看到,处于继承层次最顶层的是Any类,它是scala继承的根类,scala中所有的类都是它的子类 Any类中定义了下面几个方法: //==与!=被声明为final,它们不能被子类重写 final def ==