Scala集合中的函数(扩展)】的更多相关文章

1.拉链(zip) 将两个集合进行 对偶元组合并,可以使用拉链 object Demo_031 { def main(args: Array[String]): Unit = { val list1 = List(1, 2 ,3) val list2 = List(4, 5, 6) val list3 = list1.zip(list2) // (1,4),(2,5),(3,6) println("list3=" + list3) } } 输出 注意事项 拉链的本质就是两个集合的合并操…
____ 本文链接: https://www.cnblogs.com/senwren/p/Scala-Lis-2-Tuple.html —— Scala没有提供相应写法, 但迭代写法仍然可以做到. 有两种写法 1: object Xxx extends App{ val res = List(List("a", 2), List("c", 3) ) .map{_ match {case List(w,c)=> w->c } } println(res)…
scala常用函数操作 reduceLeft   是将集合的元素从左向右进行所需要的相应操作,图以减法为例展示,表达的算法是 : 1-2-3-4-5 例: (1 to 5).reduceLeft(_ - _)  结果为-13 ​      reduceRight  是将集合的元素从右向左进行所需要的相应操作,图以减法为例展示,表达的算法是 :1-(2-(3-(4-5))) 例:(1 to 5).reduceRight(_ - _) 结果为3 foldLeft  设定一个值,该值对集合从左向右进行…
Scala是函数式编程,这点在集合操作中大量体现.高阶函数,也就是能够接收另外一个函数作为参数的函数. 假如现在有一个需要是将List集合中的每个元素变为原来的两倍,现在来对比Java方式实现和Scala方式实现区别 Java方式实现,先将集合中的每个元素遍历出来,然后再乘以2,塞到另外一个集合中 ArrayList<Integer> list1 = new ArrayList<Integer>(); list1.add(3); list1.add(5); list1.add(7)…
函数进阶 1.函数作为变量 a=123 name="gao" nums=[1,2,3] data=nums#指向同一个内存地址 #查看内存地址篇章 def func(): print(123) func() 1.1函数名作为变量名使用 def func(): print("nice") v1=func#v1指向func函数的内存地址 v1()#执行内存中存放的代码 func() 1.2函数的默认返回值 def func(): print("nice&quo…
在C#的List集合操作中,有时候需要对List集合元素进行汇总求平均值,如数值类型的List集合元素,有时候对象类型的List集合也需要对集合中的元素的某个对象进行汇总求平均值,此时都可以使用到Average来实现,Average方法是List集合中的Linq扩展方法,Average方法有2种形式,一种是不带任何参数的Average()形式,适用于数值型如int.double.decimal等数值类型的List集合计算平均值,另一种是带Lambda表达式的书写形式. (1)针对数值类型的Lis…
前情提要: scala函数式编程(二) scala基础语法介绍 scala函数式编程(二) scala基础语法介绍 前面已经稍微介绍了scala的常用语法以及面向对象的一些简要知识,这次是补充上一章的,主要会介绍集合和函数. 注意噢,函数和方法是不一样的,方法是在类里面定义的,函数是可以单独存在的(严格来说,在scala内部,每个函数都是一个类) 一.scala集合介绍 还记得上一章介绍的object的apply方法吗,很多数据结构其实都用到了它,从而让我们可以直接用List(...)这样来新建…
1.偏函数 1.基本介绍 在对符合某个条件,而不是所有情况进行逻辑操作时,使用偏函数是一个不错的选择 将包在大括号内的一组case语句封装为函数,我们称之为偏函数,它只对会作用于指定类型的参数或指定范围值的参数实施计算,超出范围的值会忽略(未必会忽略,这取决于你打算怎样处理) 偏函数在Scala中是一个特质PartialFunction 2.快速入门 给定集合val list = List(1, 2, 3, 4, "abc") ,要求将集合list中的所有数字+1,并返回一个新的集合,…
欢迎转载,转载请注明出处,徽沪一郎. 概要 代码这东西,不写肯定不行,新学Scala不久,将实际遇到的一些问题记录下来,日后也好查找. 今天讲的是如何计算同一集合中元素两两之间的差值,即求开始集合(a,b,c,d)中(b-a,c-b,d-c) 解法 val l1 = 1 to 10 toList val l2 = l1.tail l1.zip(l2).map(p=>(p._2 - p._1) 上述代码即可求出两两差值.代码含义稍作解释: tail表示一个集合中除首元素外的剩余元素,也是一个集合.…
一.前述 Scala中的函数还是比较重要的,所以本文章把Scala中可能用到的函数列举如下,并做详细说明. 二.具体函数 1.Scala函数的定义 def fun (a: Int , b: Int ) : Unit = { println(a+b) } fun(1,1) def fun1 (a : Int , b : Int)= a+b println(fun1(1,2)) 注意点: 函数定义语法 用def来定义 l可以定义传入的参数,要指定传入参数的类型 方法可以写返回值的类型也可以不写,会自…
Scala中implict的一种用法就是扩展现有类的方法,有点类似于.Net中的扩展方法(MS对扩展方法的介绍:扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型.) Scala中有两种方式做到方法的扩展,以扩展String为列: 第一种(code:10-12,29):创建一个以implict修饰的新类并以String类型入参.在新的类型(代码中是mystring)中添加要扩展的方法(read2) 第二种(code:3-5,9,28): 创建一个以i…
由于最近辞职在家,自己的时间相对多一点.所以就根据prototytpeJS的API,结合自己正在看的司徒大神的<javascript框架设计>,整理了下Js中常用一些字符串,数组,函数扩展,一来可以练练手,二来也锻炼下自己的代码能力.由于代码里面的注释自认为已经非常详细,所以就直接贴代码了. 1. 字符串扩展: ;(function() { var method, stringExtends = { /** * 删除字符串开始和结尾的空白 * @returns {string} */ stri…
Scala中的函数 提纲 1.Scala中的函数简介 2.Scala中的函数的各种写法 1.Scala中的函数简介 =================== Scala是函数式编程和面向对象式编程的混合泛型语言,函数在Scala中犹如一个对象一样,可以赋给变量. 函数,又称函数字面量(function literal),也称值函数(function values),之所以这样称呼,是因为函数可以赋值给变量. 2.Scala中的函数的各种写法 ======================== 2.1…
IE 扩展调用主窗体中的函数 在函数名前加上 parentWindow 就可以.如: <script>     var doc = external.menuArguments.document     doc.parentWindow.函数名(); </script>…
环境:CentOS Linux release 7.7.1908 (Core)PHP 7.3.11UUID Extention 1.0.4 感觉上PHP对UUID的支持似乎不是很上心,PECL中的UUID扩展仅仅是对libuuid的打包,并没有像其他语言那样直接提供完整的UUID实现.由于libuuid仅仅提供了版本1和版本4的UUID,所以……,开心一点,这两个就够用了. uuid_create( [int $uuid_type = UUID_TYPE_DEFAULT] ) : string…
最近看Spark的东西,由于之前没有接触过lambda函数表达式,所以搜了点资料,特地纪录在此 Scala中的Lambda表达式 在函数式编程中,函数是基本的构造块.Scala融合了java中的面向对象编程和函数式编程.在Scala中,一个lambda表达式是种叫做“函数”或者“函数文本”.Scala中的函数属于一等公民.它们可以被分配给vals或者vars(最终变量或者非最终变量),它们可以作为其他函数的参数,也可以组合成新的函数. 在Scala中一个函数文本写成如下形式: ? 1 (argu…
ES6一路扩展,字符串.数组.数值.对象无一“幸免”,ES6说要雨露均沾,函数也不能落下,今天,就来讲解ES6对函数的扩展. 参数的默认值 在开发中,给函数的参数指定默认值,是很普遍很常见的一个需求,我们先来回顾一下传统的实现方式,对比着看更好理解: function person(n,a){ var name = n || 'Zhangsan'; var age = a || 25; } 上面是传统的实现方式,通过或运算实现,原理:如果运算符 || 左侧为true,直接返回左侧的值,否则返回右…
当我们对集合foreach遍历时,不能直接移除遍历的集合的元素,解决的方法有很多种,见我之前的随笔: http://www.cnblogs.com/527289276qq/p/4331000.html 除此之外,我今天发现了利用linq中的ToArray()方法,也可以实现遍历集合,移除集合中的元素,代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using S…
## 字典的所有方法- 内置方法 - 1 cmp(dict1, dict2) 比较两个字典元素. - 2 len(dict) 计算字典元素个数,即键的总数. - 3 str(dict) 输出字典可打印的字符串表示. - 4 type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型.- 1 dict.clear() 删除字典内所有元素- 2 dict.copy() 返回一个字典的浅复制- 3 dict.fromkeys(seq[, val]) 创建一个新字典,以序列 seq…
分析以下需求,并用代码实现 定义MyArrays工具类,该工具类中有以下方法,方法描述如下: 1.public static void reverse(ArrayList<Integer> list); 参数ArrayList<Integer> list:要进行操作的集合对象 要求:对list集合对象中的元素进行反转 (第一个和最后一个交换,第二个和倒数第二个交换,第三个和倒数第三个交换...) 2.public static Integer max(ArrayList<In…
分析以下需求,并用代码实现 1.定义ArrayList集合,存入多个字符串"abc" "def" "efg" "def" "def" "qwe" "def" "def" "swd" "wwe" "def" "def" 2.使用普通for循环获取集合中索引为3的元素并打印…
Scala集合 Scala提供了一套很好的集合实现,提供了一些集合类型的抽象. Scala 集合分为可变的和不可变的集合. 可变集合可以在适当的地方被更新或扩展.这意味着你可以修改,添加,移除一个集合的元素.而不可变集合类永远不会改变.不过,你仍然可以模拟添加,移除或更新操作.但是这些操作将在每一种情况下都返回一个新的集合,同时使原来的集合不发生改变. 集合中基本结构: 几种常用集合类型示例:   // 定义整型 List   val x = List(1, 2, 3, 4)       //…
为什么你学不会递归?告别递归,谈谈我的一些经验   可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了! 可能也有一大部分人知道递归,也能看的懂递归,但在实际做题过程中,却不知道怎么使用,有时候还容易被递归给搞晕.也有好几个人来问我有没有快速掌握递归的捷径啊.说实话,哪来那么多捷径啊,不过,我还是想写一篇文章,谈谈我的一些经验,或许,能够给你带来一些帮助. 为了兼顾初学者,我会从最简单的题讲起! 递归…
SQL SERVER常用函数 1.DATEADD在向指定日期加上一段时间的基础上,返回新的 datetime 值. (1)语法: DATEADD ( datepart , number, date ) (2)参数:datepart 规定应向日期的哪一部分返回新值的参数.下表列出了 Microsoft  SQL Server识别的日期部分和缩写. 日期部分     缩写 Year         yy, yyyy quarter      qq, q Month       mm, m dayof…
优先使用不可变集合.不可变集合适用于大多数情况,让程序易于理解和推断,因为它们是引用透明的( referentially transparent )因此缺省也是线程安全的. 使用可变集合时,明确地引用可变集合的命名空间.不要用使用import scala.collection.mutable._ 然后引用 Set ,应该用下面的方式替代: import scala.collections.mutable val set = mutable.Set() 这样就很明确在使用一个可变集合. 使用集合类…
第1章 unix基础知识 1. char *strerror(int errnum) 该函数将errnum(就是errno值)映射为一个出错信息字符串,返回该字符串指针.声明在string.h文件中. 2.void perror(const char *s) 该函数基于当前的errno值,在标准出错文件中输出一条出错消息,然后返回.声明在stdio.h文件中.它首先输出由s指向的字符串,然后是一个冒号,一个空格,接着是errno值对应的出错信息,最后是一个换行符. 第2章 UNIX标准化及实现…
目录 19.1. 前言 19.2. OpenGIS几何模型 19.2.1. Geometry类的层次 19.2.2. 类Geometry 19.2.3. 类Point 19.2.4. 类Curve 19.2.5. 类LineString 19.2.6. 类Surface 19.2.7. 类Polygon 19.2.8. 类GeometryCollection 19.2.9. 类MultiPoint 19.2.10. 类MultiCurve 19.2.11. 类MultiLineString 19…
条件表达式 在Scala中if/else表达式有值,这个值就是跟在if或else之后的表达式的值.例如: if (x > 0) 1 else -1 上述表达式的值是1或-1,具体是哪一个取决于x的值.你可以将if/else的值赋值给变量: val s = if (x > 0) 1 else -1 这与如下语句的效果一致: if (x > 0) s = 1 else s = -1 以上两个的区别在于:第一个可以用来初始化val:第二种s必须是var. 在Scala中每个表达式都有一个类型.…
Scala的集合框架类比Java提供了更多的一些方便的api,使得使用scala编程时代码变得非常精简,尤其是在Spark中,很多功能都是由scala的这些api构成的,所以,了解这些方法的使用,将更加有助于我们学习Scala和Spark: List,Map,Set的一些api的用法如下:  /** * Scala 集合测试 */ def collectionTest(): Unit ={ val map =Map("red"->"红色","gree…
一:概述 函数是进行模块化程序设计的基础,编写复杂的Ajax应用程序,必须对函数有更深入的了解.JavaScript中的函数不同于其他的语言,每个函数都是作为一个对象被维护和运行的.通过函数对象的性质,可以很方便的将一个函数赋值给一个变量或者将函数作为参数传递.在继续讲述之前,先看一下函数的使用语法:function func1(…){…}var func2=function(…){…};var func3=function func4(…){…};var func5=new Function(…