Scala => 用法总结
2017-07-16 22:00
253 查看
10.1 =>
这是个各种诡异用法的标记10.1.1 创建匿名函数
=>右边是函数体,左边表示函数的参数类型.(x: Int) => x + 1
10.1.2 无参匿名函数
() => T相当于
new Function0[T] //T是返回类型下面是示例代码
scala> val f: () => Unit = () => { println("x")} f: () => Unit = <function0> scala> f() x scala> val f2: Function0[Unit] = () => println("x2") f: () => Unit = <function0> scala> f2() x2
10.1.3 map函数中使用
这个十分常用,尤其在Spark里对RDD等数据类型操作时。这里很像匿名函数的创建方式,其实是lambda表达式,不清楚两者是否有区别。List(1,2,3).map { (x: Int) => x * 2 }
10.1.4 case 语句里面使用
=>左边是匹配模式,右边是匹配成功后执行的表达式下面的v1形如Some(T), 需要将T提取出来。使用了match/case语句。v1 match { case Some(value1) => println(value1) }
10.1.5 名字传参
类似与lisp,在函数执行时才对参数求值def f(x: => Int) = x * x // call it now var y = 0 f { y += 1; y } // result like eval { y += 1; y } * { y += 1; y } 2{y+=1;y} 并不特别,只是对y做了加1的操作,后面的;y没有起到任何修改y值的作用。 1 * 2 = 2。 就这么计算出来的。
相关文章推荐
- <cstring>、<string.h>和<string>用法区别总结
- scala implicit 关键字用法总结
- List<T>用法总结【转】
- <%%>用法总结
- scala =>符号含义总结
- C#泛型列表List<T>基本用法总结
- C#==>关于List的一些用法的总结
- 达内第15天培训知识总结,关于大数字的精确浮点运算以及linkList<>用法
- Scala中“=>”用法及含义
- asp.net中关于&lt;% %&gt;、&lt;%= %&gt;的用法——个人总结
- C#泛型列表List<T>基本用法总结http://space.itpub.net/14466241/viewspace-624132
- [置顶] 【scala 匹配模式】match case|case class |::|:::|=>用法
- <meta />标签用法总结
- asp.net中关于&lt;% %&gt;、&lt;%= %&gt;的用法总结 .
- PAT 牛客网1(Scanner用法总结) ----A+B>C
- Scala中=>的用法
- scala => 用法 匿名函数
- php中的V->C传值,自动跳转页面,自动创建,数组的用法总结
- <Android> Android之Adapter用法总结
- CI框架中数据库操作函数$this->db->where()相关用法总结