Scala
文章平均质量分 92
Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。Scala 运行在 Java 虚拟机上,并兼容现有的 Java 程序。Scala 源代码被编译成 Java 字节码,所以它可以运行于 JVM 之上,并可以调用现有的 Jav
@SmartSi
Stay Hungry, Stay Foolish
展开
-
[Scala]Scala学习笔记四 类
1. 简单类与无参方法class Person { var age = 0 // 必须初始化字段 def getAge() = age // 方法默认为公有的}备注在Scala中,类并不声明为public. Scala源文件可以包含多个类,所有这些类都具有公有可见性.属性不声明默认为public.使用类:val p = new Person // 或者new Person()p.ag原创 2017-07-31 12:03:11 · 1735 阅读 · 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,原创 2017-07-26 11:02:07 · 901 阅读 · 0 评论 -
[Scala]Scala学习笔记十 模式匹配
Scala有一个十分强大的模式匹配机制.可以应用在很多场合:switch语句,类型检查等等.此外Scala还提供了样例类,对模式匹配进行了优化.1. 更好的switch如下是Scala中C风格switch语句的等效代码:var sign = 2val ch = '+'ch match { case '+' => sign = 1 case '-' => sign = -1 case原创 2017-08-17 10:07:57 · 1262 阅读 · 0 评论 -
[Scala]Scala学习笔记九 提取器
1. apply和update方法Scala允许你使用如下函数调用语法:f(arg1, arg2, ...)扩展到可以应用于函数之外的值.如果f不是函数或方法,那么这个表达式就等同于调用:f.apply(arg1, arg2, ...)如果它出现在赋值语句的等号左侧:f(arg1, arg2, ...) = value则等同于调用:f.update(arg1, arg2, ..., valu原创 2017-08-16 19:51:34 · 1010 阅读 · 0 评论 -
[Scala]Scala学习笔记二 数组
1. 定长数组如果你需要一个长度不变的数组,可以使用Scala中的Array.val nums = new Array[Int](10) // 10个整数的数组 所有元素初始化为0val strs = new Array[String](10) // 10个字符串的数组 所有元素初始化为nullval s = Array("Hello", "World") // 长度为2的Array[Stri原创 2017-07-25 13:41:57 · 1108 阅读 · 0 评论 -
[Scala]Scala学习笔记一 基础
1. 变量val定义的值实际上是一个常亮,无法改变其内容scala> val num = 0num: Int = 0scala> num = 2:12: error: reassignment to val num = 2 ^如果要声明其值可变的变量,可以使用varscala> var number = 0number: Int = 0sca原创 2017-07-24 20:27:45 · 893 阅读 · 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原创 2017-08-02 12:09:01 · 1433 阅读 · 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原创 2016-08-04 20:01:12 · 2824 阅读 · 0 评论 -
[Scala]Scala学习笔记七 正则表达式
1. Regex对象我们可以使用scala.util.matching.Regex类使用正则表达式.要构造一个Regex对象,使用String类的r方法即可:val numPattern = "[0-9]+".r如果正则表达式包含反斜杠或引号的话,那么最好使用"原始"字符串语法"""...""":val positiveNumPattern = """^[1-9]\d*$"""如果在Java中原创 2017-08-08 10:15:54 · 1275 阅读 · 0 评论 -
[Scala]Scala学习笔记五 Object
1. 单例对象Scala没有静态方法或静态字段,可以使用object来达到这个目的,对象定义了某个类的单个实例:object Account{ private var lastNumber = 0 def newUniqueNumber () = {lastNumber += 1; lastNumber}}当你在应用程序中需要一个新的唯一账号时,调用Account.newUniqueN原创 2017-07-31 12:04:32 · 1672 阅读 · 0 评论 -
[Scala]Scala学习笔记八 高阶函数
Scala混合了面向对象和函数式的特性.在函数式编程语言中,函数可以像任何其他数据类型一样被传递和操作.如果想要给算法传入明细动作时,只需要将明细动作包在函数当中作为参数传入即可.1. 作为值的函数在Scala中,函数就和数字一样,可以在变量中存放:import scala.math._val num = 3.14val fun = ceil _println(num) // 3.14p原创 2017-08-11 13:33:14 · 944 阅读 · 0 评论