collection基础参见之前的博文scala快速学习(二). 本文主要是组合器(combinator),因为在实际中发现很有用.主要参考:http://www.importnew.com/3673.html List(1,2,3) map squared会在列表的每个元素上分别应用squared函数,并且返回一个新的列表,可能是List(1,4,9).我们把类似于map这样的操作称为组合器. 特点:组合器的参数都是一个函数,这个函数的输入输出都是列表元素.最常见的方式是匿名函数用=>定义,左…
函数装饰器 简单装饰器 def my_decorator(func): def wrapper(): print('wrapper of decorator') func() return wrapper def greet(): print('hello world') greet = my_decorator(greet) greet() # 输出 # wrapper of decorator # hello world 上述代码在 Python 中有更简单.更优雅的表示: def my_d…
1.map 在列表中的每个元素上计算一个函数,并且返回一个包含相同数目元素的列表. scala> numbers.map(_ * 2)res3: Array[Int] = Array(2, 4, 6, 8) 2.foreach 和map一样对序列中的每个元素操作,不同的是无返回值 scala> numbers.foreach(println(_))1234 3.filter 移除任何使得传入的函数返回false的元素.返回Boolean类型的函数一般都称为断言函数. scala> num…
1.本地函数 可以在一个方法内再次定义一个方法,这个方法就是外部方法的内部私有方法,省略了private关键字 2.头等函数 var increase = (x: Int) => x + 1 System.out.println(increase(10)) 集合类的foreach方法 var list1 = List(1, 2) list1.foreach((x: Int) => println(x)) 集合类的filter方法 list1.filter((x: Int) => x &g…
1.引入场景: 检查代码的运行时间 import time def func(): start = time.time() time.sleep(0.12) print('看看我运行了多长时间!') end = time.time() print('此段代码运行时长为:%s'%(end - start)) func() 如果有大量的函数要检查,这样加入代码太费功夫!考虑提取为一个函数,要检查时直接调用即可 def check_time(f): start = time.time() time.s…
compose&andThen 两个函数组装为一个函数,compose和andThen相反 def f(test: String):String = { "f(" + test + ")" } def g(test: String):String = { "g(" + test + ")" } val composeFunction = f _ compose g _ println("compose res…
Scala进阶之路-Scala函数篇详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传值调用和传名调用 /* @author :yinzhengjie Blog:http://www.cnblogs.com/yinzhengjie/tag/Scala%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/ EMAIL:y1053419035@qq.com */ package cn.org.yinzhengjie.basicGrammar objec…
摘要: 通过求解 (sinx)^2 + (cosx)^2 = 1 的若干写法,逐步展示了如何从过程式的写法转变到函数式的写法,并说明了编写"[接受函数参数]并返回[能够接受函数参数的函数]的[高阶函数]"的一点小技巧. 难度: 中级. 代码在此,先领会一下~~ package zzz.study.function.decrator; import java.util.Arrays; import java.util.List; import java.util.function.BiF…
1.介绍 Scala 有方法与函数,二者在语义上的区别很小.Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量.换句话来说在类中定义的函数即是方法. Scala 中的方法跟 Java 的类似,方法是组成类的一部分. Scala 中的函数则是一个完整的对象,Scala 中的函数其实就是继承了 Trait 的类的对象. Scala 中使用 val 语句可以定义函数,def 语句定义方法. 2.实例代码 object Test1 { //定义一个方法 //方法method_test参数要…
函数组合 让我们创建两个函数: def f(s: String) = "f(" + s + ")" def g(s: String) = "g(" + s + ")" compose compose 组合其他函数形成一个新的函数 f(g(x)) val fComposeG = f _ compose g _ fComposeG("yay") // f(g(yay)) andThen andThen 和 co…