Scala match 变量

昨天写 Scala 的时候,使用 match(相当于 switch)时,运行结果很奇怪。
var i: Int = 0
while (i < items.length) {
  i % width match {
    case offset => println("offset: " + items(i))
    case logSize => println("logSize: " + items(i))
    case lag => println("lag: " + items(i))
    case _ =>
  }
  i = i + 1
}

后看到:http://stackoverflow.com/questions/7078022/why-does-pattern-matching-in-scala-not-work-with-variables

在 Scala 中,match 的必须是 stable identifier,不明所以,以后研究。

改成如下即可:
var i: Int = 0
while (i < items.length) {
  i % width match {
    case `offset` => println("offset: " + items(i))
    case `logSize` => println("logSize: " + items(i))
    case `lag` => println("lag: " + items(i))
    case _ =>
  }
  i = i + 1
}

Scala match 变量

时间: 2024-07-29 06:27:37

Scala match 变量的相关文章

Scala之变量

变量是保存存储值的内存位置的名称.这意味着当创建变量时,可以在内存中保留一些空间. 根据变量的数据类型,编译器分配内存并决定可以存储在预留内存中的内容.因此,通过为变量分配不同的数据类型,可以在这些变量中存储整数,小数或字符. 1.变量声明 使用关键字var声明,是一个可以改变值的变量,这称为可变变量. var myVar : String = "Foo" 使用关键字val声明,是一个不能被改变的变量,这被称为不可变变量. val myVal : String = "Foo&

Scala学习-变量常量、运算符、流程控制和函数

scala是马丁.奥德斯克设计的,专门为程序员设计,广泛应用于大数据的语言.它同时支持面向对象和面向函数编程,运行scala需基于JVM,使用它需要提前安装好JDK和scala SDK.scala的的代码一行可以顶多行java代码,开发效率高,并且兼容java类库,scala编译完也是.class文件.另外大数据框架kafka和spark是基于scala开发的,因此想做流处理需要学习scala. 基本数据类型 scala中没有基本类型的说法,绝大多数类型(类似java类型)都封装成了类,以下是它

scala环境变量配置

SCALA-HOME:       E:\Scala      scala 安装目录 Path:            追加   %scala_Home%\bin;%scala_Home%\jre\bin; ClassPath  : 追加   .;%scala_Home%\bin;%scala_Home%\lib\dt.jar;%scala_Home%\lib\tools.jar.;

Scala常用变量生命周期

val words = *** //在words被定义时取值 lazy val words = *** //在words被首次使用时取值 def words = *** //在每一次words被使用时取值 原文地址:https://www.cnblogs.com/itboys/p/9862132.html

scala快速学习笔记(一):变量函数,操作符,基本类型

为了用spark,先学下scala. 参考教程:http://meetfp.com/zh/scala-basic 在线编译:http://meetfp.com/tryout 其它资料:http://scalachina.com/node/16 http://blog.csdn.net/mapdigit/article/details/21878083 特点: Scala是一种纯面向对象的语言,一切都是对象:将原始类型和类统一起来,同时也将函数和操作符统一起来. Scala又是函数式语言,这体现在

Scala系统学习(四):Scala变量

变量是保存存储值的内存位置的名称.这意味着当创建变量时,可以在内存中保留一些空间. 根据变量的数据类型,编译器分配内存并决定可以存储在预留内存中的内容.因此,通过为变量分配不同的数据类型,可以在这些变量中存储整数,小数或字符. 变量声明 Scala具有用于声明变量的不同语法.它们可以被定义为值,即常数或变量. 这里,myVar使用关键字var声明. 它是一个可以改变值的变量,这称为可变变量. 以下是使用var关键字定义变量的语法 - 语法 var myVar : String = "Foo&qu

Scala入门到精通——第十五节 Case Class与模式匹配(二)

本节主要内容 模式匹配的类型 for控制结构中的模式匹配 option类型模式匹配 1. 模式的类型 1 常量模式 object ConstantPattern{ def main(args: Array[String]): Unit = { //注意,下面定义的是一个函数 //函数的返回值利用的是模式匹配后的结果作为其返回值 //还需要注意的是函数定义在main方法中 //也即scala语言可以在一个函数中定义另外一个函数 def patternShow(x:Any)=x match { ca

scala习题精选100道

1.**[primary]**关于和Scala进行交互的基本方式REPL说法错误的是? C A.R 读取(read)B.E 求值(evaluate)C.P 解析(Parse)D.L 循环(Loop) 2.**[primary]**不属于Scala7种数值类型的是? D A.CharB.IntC.FloatD.LongLong 3.**[primary]**如果需要使用scala库中的sqrt函数,如sqrt(2),下列引用包的方式错误的是? B A.import scala.math._B.im

Scala语法学习手册

1       快速入门... 2 1.1             分号... 2 1.2             常变量声明... 2 1.2.1         val常量... 2 1.2.2         var变量... 2 1.2.3         类型推导... 3 1.2.4         函数编程风格... 3 1.3             Range. 3 1.4             定义函数... 4 1.5             while.if 4 1.6