scala中to和util操作】的更多相关文章

// Range:to:默认步进为1 val to1 = 1 to 10 println(to1) // 定义一个不进为2的Range val to2 = 1 to 10 by 2 println(to2) println(to2.toList) // Range:until val until1 = 1 until 10 println(until1) val until2 = 1 until 10 by 2 println(until2)…
/** * Created by root * Description : List */ object ListTest { def main(args: Array[String]): Unit = { println() } val a = List(1,2,3,4) for (i <- a) println(i) // 将0添加到a中 val b = 0::a for (i <- b) println(i) val c = List("x","y"…
通过Scala对文件进行读写操作在实际业务中应用也比较多,这里介绍几种常用的方式,直接上代码: 1. 从文件中读取内容 object Main { def loadData(): Array[String] = { var bs: BufferedSource = null var in: InputStream = null try { in = Main.getClass.getClassLoader.getResourceAsStream("data.txt") if (in =…
这一章的一些基础性的东西,主要包括Scala中的基本变量类型,以及相关的一些操作符. 一.简单类型 下表中列出Scala语言中的基本类型,以及其字节长度,其中Byte, Short, Int, Long以及Char都属于整型,整型再加上Float和Doble统称为数字类型. 类型 描述 Byte 8位有符号补码整型(-2^7~2^7 - 1) Short 16位有符号补码整型(-2^15~2^15 - 1) Int 32位有符号补码 整型(-2^31~2^31 - 1) Long 64位有符号补…
Runnable/Callable 线程(Thread) Executors/ExecutorService Future 线程安全问题 示例:搜索引擎 解决方案 Runnable/Callable Runnable只有一个没有返回值的方法 1 2 3 trait Runnable {   def run(): Unit } Callable的方法和run类似,只不过它有一个返回值 1 2 3 trait Callable[V] {   def call(): V } 线程 Scala的并发是建…
Scala中的implicit关键字对于我们初学者像是一个谜一样的存在,一边惊讶于代码的简洁, 一边像在迷宫里打转一样地去找隐式的代码,因此我们团队结合目前的开发工作,将implicit作为一个专题进行研究,了一些心得. 在研究的过程当中,我们注重三方面: 为什么需要implicit? implicit 包含什么,有什么内在规则? implicit 的应用模式有哪些? 为什么需要Implicit? Scala在面对编译出现类型错误时,提供了一个由编译器自我修复的机制,编译器试图去寻找一个隐式im…
在任何并发性应用程序中,异步事件处理都至关重要.无论事件的来源是什么(不同的计算任务.I/O 操作或与外部系统的交互),您的代码都必须跟踪事件,协调为响应它们而执行的操作.应用程序可以采用两种基本方法之一来实现异步事件处理: 阻塞:一个等待事件的协调线程. 非阻塞:事件向应用程序生成某种形式的通知,而没有线程显式等待它. 合成事件 scala.concurrent.Promise 和 scala.concurrent.Future 类为 Scala 开发人员提供了一些与 Java 8 开发人员的…
转载:http://www.jianshu.com/p/95896d06a94d 1.option类型避免对象是空值,造成空指针异常. 2.None对象表示null,在没有对象返回时使用,some在有对象值时使用. 避免null使用 大多数语言都有一个特殊的关键字或者对象来表示一个对象引用的是“无”,在Java,它是null.在Java 里,null 是一个关键字,不是一个对象,所以对它调用任何方法都是非法的.但是这对语言设计者来说是一件令人疑惑的选择.为什么要在程序员希望返回一个对象的时候返回…
数组相关操作 摘要: 本篇主要学习如何在Scala中操作数组.Java和C++程序员通常会选用数组或近似的结构(比如数组列表或向量)来收集一组元素.在Scala中,我们的选择更多,不过现在我们先假定不关心其他选择,而只是想马上开始用数组.本篇的要点包括: 1. 若长度固定则使用Array,若长度可能有变化则使用ArrayBuffer 2. 提供初始值时不要使用new 3. 用()来访问元素 4. 用for (elem<-arr)来遍历元素 5. 用for (elem<-arr if…)…yie…
对于java中的集合元素并不能在scala中拿来就用的,需要进行相应的转换. 1. 转换规则如下 从下面可以看出,有些可以相互转换的,有些只能单向转换: scala.collection.Iterable <=> java.lang.Iterable scala.collection.Iterable <=> java.util.Collection scala.collection.Iterator <=> java.util.{ Iterator, Enumerat…