Array

 val greetStrings = new Array[String](3)
greetStrings(0) = "Hello"
greetStrings(1) = ","
greetStrings(2) = "world!\n" for(i <- 0 to 2)
print(greetStrings(i)) val numNames = Array("zero", "one", "two")
for(x <- numNames)
println(x)

针对上面的代码可以说如下几点:

泛型支持

 new SomeClass[Type Argument](...)

当方法只有一个参数时,可以采用中缀的形式调用。

 0 to 2 // (0).to(2)

一切皆为对象,所有的运算符都对应对象上的方法。

obj(...) 对应 obj.apply(...)

obj(...) = ... 对应 obj.update(...)

 object TestClass {
def apply(): TestClass = new TestClass()
}
class TestClass {
def say(msg: String):Unit = {
println(msg)
} def apply(x: Int): Unit = {
println(x)
} def apply(x: Int, y: Int): Unit = {
println(x)
println(y)
} def apply(args: Int*): Unit = {
for(x <- args)
println(x)
} def update(x: Int, msg: String): Unit = {
println(x)
println(msg)
} def update(x: Int, y: Int, msg: String): Unit = {
println(x)
println(y)
println(msg)
}
} var test = new TestClass()
test say "hello, world!"
test(1)
test(2, 3)
test(2, 3, 4) test(1) = "hello"
test(2, 3) = "world" println(TestClass())

List

 var list = List(3, 4, 5)
list = 1 :: 2 :: list
list.foreach(println) class TestClass {
def |: (x: Int): TestClass = {
println(x)
this
}
} var test = new TestClass()
2 |: 1 |: test

List的用法还是比较自然的,从上面的代码可以学到一点额外的知识,即:以“:”号结尾的方法,在采用中缀调用法时,对象在右侧。

Tuple

 val pair = (99, "Luftballons")
println(pair._1)
println(pair._2)

Tuple在语法层面上显出了其特殊性,估计Scala在很多地方对其都有特殊处理,拭目以待了。

Set adn Map

 // Set
var set = Set(1, 2, 3)
set += 4
println(set.contains(2)) // Map
var map = Map(1 -> "One", 2 -> "Two")
println(map)

1 -> "One" 只是方法调用,即:(1).->("One"),返回的是一个Tuple。

Scala:Next Steps in Scala的更多相关文章

  1. Scala:First Steps in Scala

    var and val 简单来说,val声明的变量可以重新修改其引用,val则不行,见下面的例子: def max(x: Int, y: Int): Int = { if(x > y) x el ...

  2. Scala:使用Sublime开发Scala

    Scala:使用Sublime开发Scala 第一步:[Tools][Build System][New Build System] 第二步:在打开的新文件中输入: { //"cmd&quo ...

  3. Scala:case class

    Scala:case class 1.Scala中class.object.case class.case object区别 1.1 class 和 object 关系 1.2 case class ...

  4. Scala:Java 项目中混入scala代码

    Spark 是用Scala代码写的.为了调试Spark,做了如下尝试. 1.Eclipse下:Java 项目 ,Using Maven,编写了一个java 版Spark应用. Spark的代码(sca ...

  5. Scala:映射和元组

    映射是键值对偶的集合.Scala有一个通用的叫法——元组:n个对象的聚集,并不一定要相同的类型. 构造映射 键A -> 值B scala> val scores = Map()//不可变映 ...

  6. 学习Scala: 初学者应该了解的知识

    Scala开发参照清单 这里列出在开发一个Scala工程中需要参照的资料. 官网网站 http://www.scala-lang.org/ 文档网站 http://docs.scala-lang.or ...

  7. Scala:函数式编程之下划线underscore

    http://blog.csdn.net/pipisorry/article/details/52913548 python参考[python函数式编程:apply, map, lambda和偏函数] ...

  8. Scala:类,对象和特征(接口)

    http://blog.csdn.net/pipisorry/article/details/52902609 Scala类和对象 类是对象的抽象,而对象是类的具体实例.类是抽象的,不占用内存,而对象 ...

  9. Scala:集合类型Collection和迭代器

    http://blog.csdn.net/pipisorry/article/details/52902549 Scala Collection Scala 集合分为可变的和不可变的集合. 可变集合可 ...

随机推荐

  1. Android GsmCellLocation.getCellLocation返回NULL

    Android GsmCellLocation.getCellLocation返回NULL 1.首先 获取服务 telephonyManager =(TelephonyManager)getSyste ...

  2. Android动态控制状态栏显示和隐藏

    记得之前有朋友在留言里让我写一篇关于沉浸式状态栏的文章,正巧我确实有这个打算,那么本篇就给大家带来一次沉浸式状态栏的微技巧讲解. 其实说到沉浸式状态栏这个名字我也是感到很无奈,真不知道这种叫法是谁先发 ...

  3. Oracle常用sql语句(一)

    # Sql的分类 # DDL (Data Definition Language):数据定义语言,用来定义数据库对象:库.表.列等: CREATE. ALTER.DROP DML(Data Manip ...

  4. python 全栈开发,Day93(vue内容补充,VueX)

    昨日内容回顾 1. 页面的布局 Vue中使用Bootstrap搭页面 1. 安装 1. npm install bootstrap@3.3.7 -S 2. 使用 1. import 'bootstra ...

  5. python算法双指针问题:二分查找

    这里要注意的是//向下取整,下次循环时,如果大于查找的数字,start+1. 并且,只能向下取整,如果向上取整. 那么,在比较第一个数时,start = 0 .end = 1.mid = 1.就会进入 ...

  6. day17--JQuery

        JQuery(中文社区:http://jquery.cuishifeng.cn/) 模块  类库  在不同语言叫法不一样而已 DOM/BOM/JavaScript的类库 一.查找元素 JQue ...

  7. 不同git仓库版本控制

    场景: 我们有一个开源项目托管在github上面,现在打算在gitlab上进行私有托管开发,当适合发布一个版本的时候提交到github. Git合并特定commits 到另一个分支 实现如下: 1.获 ...

  8. django基类View.as_view()

    参考:https://www.zmrenwu.com/post/53/ 详细见参考 一般请求的判断方法: def view(request, *args, **kwargs): if request. ...

  9. 《Android进阶之光》--RxJava结合Retrofit访问网络

    1)配置 dependencies{ ... compile 'io.reactivex:rxjava:1.2.0' compile 'io.reactivex:rxandroid:1.2.1' co ...

  10. mac电脑对ntfs格式硬盘进行写操作(简单说就是向ntfs硬盘拷贝东西)

    使用mac电脑的童鞋应该都会遇到一个问题: 对ntfs格式的优盘或硬盘(移动硬盘默认ntfs)只能读不能写,也就是只能拷贝出数据,却没法拷贝数据到移动硬盘中. 下面是参考自网上的一种方法,无需第三方软 ...