[Scala]Scala学习笔记十 模式匹配

Scala有一个十分强大的模式匹配机制.可以应用在很多场合:switch语句,类型检查等等.此外Scala还提供了样例类,对模式匹配进行了优化.1. 更好的switch如下是Scala中C风格switch语句的等效代码:var sign = 2 val ch = '+' ch match { case '+' => sign = 1 case '-' => sign = -1 case...
阅读(127) 评论(0)

[Scala]Scala学习笔记九 提取器

1. apply和update方法Scala允许你使用如下函数调用语法:f(arg1, arg2, ...) 扩展到可以应用于函数之外的值.如果f不是函数或方法,那么这个表达式就等同于调用:f.apply(arg1, arg2, ...) 如果它出现在赋值语句的等号左侧:f(arg1, arg2, ...) = value 则等同于调用:f.update(arg1, arg2, ..., valu...
阅读(152) 评论(0)

[Scala]Scala学习笔记八 高阶函数

Scala混合了面向对象和函数式的特性.在函数式编程语言中,函数可以像任何其他数据类型一样被传递和操作.如果想要给算法传入明细动作时,只需要将明细动作包在函数当中作为参数传入即可.1. 作为值的函数在Scala中,函数就和数字一样,可以在变量中存放:import scala.math._ val num = 3.14 val fun = ceil _ println(num) // 3.14 p...
阅读(127) 评论(0)

[Scala]Scala学习笔记七 正则表达式

1. Regex对象我们可以使用scala.util.matching.Regex类使用正则表达式.要构造一个Regex对象,使用String类的r方法即可:val numPattern = "[0-9]+".r 如果正则表达式包含反斜杠或引号的话,那么最好使用"原始"字符串语法"""...""":val positiveNumPattern = """^[1-9]\d*$""" 如果在Java中...
阅读(129) 评论(0)

[Scala]Scala学习笔记六 文件

1. 读取行读取文件,可以使用scala.io.Source对象的fromFile方法.如果读取所有行可以使用getLines方法:val source = Source.fromFile("/home/xiaosi/exception.txt", "UTF-8") val lineIterator = source.getLines() for(line println(line) } s...
阅读(155) 评论(0)

[Scala]Scala学习笔记五 Object

1. 单例对象Scala没有静态方法或静态字段,可以使用object来达到这个目的,对象定义了某个类的单个实例:object Account{ private var lastNumber = 0 def newUniqueNumber () = {lastNumber += 1; lastNumber} } 当你在应用程序中需要一个新的唯一账号时,调用Account.newUniqueN...
阅读(128) 评论(0)

[Scala]Scala学习笔记四 类

1. 简单类与无参方法class Person { var age = 0 // 必须初始化字段 def getAge() = age // 方法默认为公有的 } 备注在Scala中,类并不声明为public. Scala源文件可以包含多个类,所有这些类都具有公有可见性.属性不声明默认为public.使用类:val p = new Person // 或者new Person() p.ag...
阅读(171) 评论(0)

[Scala]Scala学习笔记三 Map与Tuple

1. 构造映射可以使用如下命令构造一个映射:scala> val scores = Map("Alice" -> 90, "Kim" -> 89, "Bob"-> 98) scores: scala.collection.immutable.Map[String,Int] = Map(Alice -> 90, Kim -> 89, Bob -> 98) 上面构造了一个不可变的Map[String,...
阅读(166) 评论(0)

[Scala]Scala学习笔记二 数组

1. 定长数组如果你需要一个长度不变的数组,可以使用Scala中的Array.val nums = new Array[Int](10) // 10个整数的数组 所有元素初始化为0 val strs = new Array[String](10) // 10个字符串的数组 所有元素初始化为null val s = Array("Hello", "World") // 长度为2的Array[Stri...
阅读(170) 评论(0)

[Scala]Scala学习笔记一 基础

1. 变量val定义的值实际上是一个常亮,无法改变其内容 scala> val num = 0 num: Int = 0 scala> num = 2 :12: error: reassignment to val num = 2 ^ 如果要声明其值可变的变量,可以使用varscala> var number = 0 number: Int = 0 sca...
阅读(166) 评论(0)

[Scala]第一个Scala小程序

1. 交互式模式 在命令行窗口中,输入scala命令: xiaosi@Qunar:~$ scalaWelcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_91).Type in expressions for evaluation. Or try :help.scala> 第一个小程序: xi...
阅读(1040) 评论(0)
    个人资料
    • 访问:1240488次
    • 积分:19944
    • 等级:
    • 排名:第437名
    • 原创:621篇
    • 转载:132篇
    • 译文:50篇
    • 评论:173条
    博客专栏
    文章分类
    最新评论