• Unit函数的定义:

    def foo()={println("hi")}

    等号可以省略:

    def foo(){println("hi")}

  • update方法:

    x(y) = z

    相当于:

    x.update(y, z)

  • 单参数方法的调用:

    xObject yMethod zParameter

    相当于:

    xObject.yMethod(zParameter)

  • case类的中置表示法

h::t

等价于

::(h,t)

可以试着执行一下:

scala> `::`(0,List(1))
res11: scala.collection.immutable.::[Int] = List(0, 1)

同理,

x~y~z

等价于

~(~(x,y),z)


一些匿名类、函数参数的写法:

  • 匿名函数

    val square=(x:Double)=>Math.pow(x,2)

    可以写成:

    val square=Math.pow(_:Double,2)

  • 匿名类

class DoubleTrans {def foo=(_:Int)*2}
val p1 = new DoubleTrans()
p1 foo 2

可以简写成:

val p2 = new {def foo=(_:Int)*2}
p2.foo(100)
  • 匿名子类
scala> val p3=new DoubleTrans(){override def foo=(_:Int)*3}
p3: DoubleTrans = $anon$1@56636a77 scala> p3 foo 4
res9: Int = 12 scala> p3.isInstanceOf[DoubleTrans]
res10: Boolean = true

scala学习笔记:各种奇怪的写法的更多相关文章

  1. 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性

    基于.net的分布式系统限流组件   在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...

  2. Scala学习笔记及与Java不同之处总结-从Java开发者角度

    Scala与Java具有很多相似之处,但又有很多不同.这里主要从一个Java开发者的角度,总结在使用Scala的过程中所面临的一些思维转变. 这里仅仅是总结了部分两种语言在开发过程中的不同,以后会陆续 ...

  3. Scala学习笔记之:tuple、array、Map

    [TOC] 本文<快学Scala>的笔记 tuple学习笔记 tuple的定义 对偶是元组(tuple)的最简单形态--元组是不同类型的值的聚集. 元组的值是通过将单个值包含在圆括号中构成 ...

  4. 机器学习(三)--- scala学习笔记

    Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. Spark是UC Berkeley AMP lab所开源的类Had ...

  5. 【大数据】Scala学习笔记

    第 1 章 scala的概述1 1.1 学习sdala的原因 1 1.2 Scala语言诞生小故事 1 1.3 Scala 和 Java  以及 jvm 的关系分析图 2 1.4 Scala语言的特点 ...

  6. scala 学习笔记(03) 参数缺省值、不定个数参数、类的属性(Property)、泛型初步

    继续学习,这一篇主要是通过scala来吐槽java的,同样是jvm上的语言,差距咋就这么大呢? 作为一个有.NET开发经验的程序员,当初刚接触java时,相信很多人对java语言有以下不爽(只列了极小 ...

  7. Scala学习笔记(1)-基本类型归纳

    1.小试牛刀 使用Scala自带的REPL shell(Read Evaluate Print Loop)学习和尝试Scala语言库,创建的变量在会话期间都是有效的. Ctrl+D可退出REPL sh ...

  8. 原创:Scala学习笔记(不断更新)

    Scala是一种函数式语言和面向对象语言结合的新语言,本笔记中就零散记下学习scala的一些心得,主要侧重函数式编程方面. 1. 以递归为核心控制结构. 实现循环处理的方式有三种:goto,for/w ...

  9. Scala学习笔记 & 一些不错的学习材料 & 函数编程的历史八卦

    参考这篇文章: http://www.ibm.com/developerworks/cn/java/j-lo-funinscala1/ 这也是一个系列 严格意义上的编程范式分为:命令式编程(Imper ...

随机推荐

  1. 清空具有外键约束的表时报ERROR 1701(42000)的解决办法

    ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key constraint (`furion`.`tbl_fr ...

  2. PHP算法之二分查找和顺序查找

    一.二分查找 (数组里查找某个元素) /** * 二分查找 (数组里查找某个元素) * $k为要查找的关键字(注:待查找的数组元素为奇数个)$low为查找范围的最小键值,$high为查找范围的最大键值 ...

  3. 在win64位,python64位2.7版本中安装pyHook

    今天看了一篇博文说的是利用pyhook监听键盘鼠标事件(感兴趣的可以看博客园中相关文章),文章中使用的pyHook模块的官方下载地址是:http://sourceforge.net/projects/ ...

  4. css控制大小写

    转换不同元素中的文本: text-transform:uppercase //全大写 text-transform:lowercase //全小写 text-transform:capitalize ...

  5. 利用SQOOP将ORACLE到HDFS

    #Oracle的连接字符串,其中包含了URL,SID,和PORT URL=jdbc:oracle:thin:@132.232.19.79:10521:szdw #使用的用户名 USERNAME=szd ...

  6. Windows常用命令使用总结

    Windows dos常用命令的熟练使用有助于提高工作效率. 1.windows+R:打开运行程序窗口 2.cmd:调用DOS命令窗口 3.mstsc:调用远程桌面命令窗口 4.mspaint:调用画 ...

  7. Android短彩信源码解析-短信发送流程(三)

    3.短信pdu的压缩与封装 相关文章: ------------------------------------------------------------- 1.短信发送上层逻辑 2.短信发送f ...

  8. Sql sp_executesql 参数问题

    DECLARE @name NVARCHAR(30), @sql NVARCHAR(300)set @sql= N'SELECT TOP 1 @n=EmpName from dbo.Emp' exec ...

  9. Datatable的Select()方法简介

    DataTable是我们在进行开发时经常用到的一个类,并且经常需要对DataTable中的数据进行筛选等操作,下面就介绍一下Datatable中经常用到的一个方法——Select,微软提供了四个函数的 ...

  10. RxJava的使用

    前言 RxJava及RxAndroid比较详细的介绍可以参考该文档<给 Android 开发者的 RxJava 详解> 基本介绍 ReactiveX 及 RxJava使用大部分来自和参考& ...