Scala var 和 val

在写 scala 代码的时候可能有这样的错误提示,如下,

scala> val name = "lyx"
name: String = lyx

scala> name = "lyx,hello"
<console>:8: error: reassignment to val
       name = "lyx,hello"
            ^

error: reassignment to val,这是因为 val 定义的变量是不能再次被赋值的,也就是说这个变量名称和值是绑定的,不能改变。

如果想改变这个名称和值得绑定,那么使用 var 定义变量,如下,

scala> var age = 1
age: Int = 1

scala> age = 2
age: Int = 2

===========================END===========================

时间: 2024-10-17 14:35:04

Scala var 和 val的相关文章

scala学习手记3 - var和val

scala中用var和val定义变量都是可以的. 用val定义的变量是不可变的,被初始化后值就固定下来,不可以再被修改(这类似于java中的final关键字):用var定义的变量是可变的,可以任意修改. 仍然要注意这里说的不可变是针对变量本身而言,而非变量所指向的实例.比如说如果定义了一个StringBuffer的val变量如val buffer = new StringBuffer(),那么变量buffer再执行诸如buffer.append("robin")这样的操作来修改buff

Kotlin中变量不同于Java: var 对val(KAD 02)

原文标题:Variables in Kotlin, differences with Java. var vs val (KAD 02) 作者:Antonio Leiva 时间:Nov 28, 2016 原文链接:http://antonioleiva.com/variables-kotlin/ Kotlin系列课程的第二课:Kotlin中变量不同于Java: var 对val. 在这第二章节中,我们将了解Kotlin中变量是怎样工作的,什么是val和var,什么时间使用它们. 我从这开始,是因

Kotlin 变量和常量的声明(var和val)

Kotlin有着非常非常智能化的声明变量方式.叫做类型推断 声明变量要使用关键字var和val. var声明方式第一种(自动推断): var nub=1231://自动定义整数型 使用分号 var ch="这是一个字符串" //自动定义字符串 不使用分号 同样,是Kotlin自己判断的数据类型. 当我们自动定义一个类型之后,这个类型就会固定下来这个类型. 正如我们下面的代码. 定义一个字符串之后在赋值一个数字就会报错 fun main(agrs : Array<String>

随感---如何理解Scala中的val与def

def ,指 definition. 是函数的定义.定义的时候函数,函数并不执行,它们是为演算做准备 val,指 value. 是演算的一个阶段性成果.等号右边的部分无论多么长都要被演算成一个值.可以说一个val就是小小的计算过程.val是函数是编程的最小程序单元. var, 指variable. 它们的值可以变来变去的.var不应参加演算.因为同一个var的不同值,会导致同一个演算的结果前后不一致.

Scala继承中val变量的构造顺序

例子1: class A { val x1: String = "hello" val x2: String = "mom" println("A: x1=" + x1 + ",x2=" + x2) } class B extends A { override val x2: String = "dad" println("B: x1=" + x1 + ",x2="

Scala函数字面量

Scala中函数为头等公民,你不仅可以定义一个函数然后调用它,而且你可以写一个未命名的函数字面量,然后可以把它当成一个值传递到其它函数或是赋值给其它变量.下面的例子为一个简单的函数字面量(参考整数字面量,3 为一整数字面量). (x :Int ) => x +1 这是个函数字面量,它的功能为+1. 符好 => 表示这个函数将符号左边的东西(本例为一个整数),转换成符号右边的东西(加1). 函数字面量为一个对象(就像3是个对象),因此如果你愿意的话,可以把这个函数字面量保持在一个变量中.这个变量

[转载] 详述三种现代JVM语言--Groovy,Scala和Clojure

转载自http://www.tuicool.com/articles/jYzuAv和http://www.importnew.com/1537.html 在我与Martin Fowler曾经合作呈现的一次主题演讲中,他作出了一个有洞察性的观点: Java的遗产将是平台,而不是程序设计语言. Java技术的原始工程师们作出了一个明智的决定,就是将编程语言与运行时环境分开,最终这使得超过200种语言能够运行在Java平台上.这种架构对于该平台的长期活力是至关重要的,因为计算机程序设计语言的寿命一般都

Scala学习笔记及与Java不同之处总结-从Java开发者角度

Scala与Java具有很多相似之处,但又有很多不同.这里主要从一个Java开发者的角度,总结在使用Scala的过程中所面临的一些思维转变. 这里仅仅是总结了部分两种语言在开发过程中的不同,以后会陆续更新一些切换后在开发过程中值得注意的地方.以下列举了部分,但令人印象深刻的Scala语言的不同之处,具体的代码演示样例及具体阐述见下文. ? Scala中可直接调用Java代码,与Java无缝连接. 语句能够不用";"结束.且推荐不适用";". 变量声明时以var或va

【Scala】Scala之Classes and Properties

一.前言 前面学习了控制结构,下面学习Scala的Class和Properties. 二.Class&Properties 尽管Scala和Java很类似,但是对类的定义.类构造函数.字段可见性控制等则不相同,Java更为冗长,Scala精炼.本章将通过Scala的构造函数工作原理来理解Scala的类和字段,当申明类构造函数参数和使用var.val.private关键字来修饰类的字段时,Scala编译器将会为你生成代码,根据字段修饰符不同,Scala编译器会生成不同的存取函数,本章也会展示如何重