文章永久连接:https://tech.souyunku.com/2981
变量是一种使用方便的占位符,用于引用计算机内存地址,变量创建后会占用一定的内存空间。
基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中。因此,通过给变量分配不同的数据类型,你可以在这些变量中存储整数,小数或者字母。
变量声明
在学习如何声明变量与常量之前,我们先来了解一些变量与常量。 – 变量: 在程序运行过程中其值可能发生改变的量叫做变量。如:时间,年龄。 – 常量 在程序运行过程中其值不会发生变化的量叫做常量。如:数值 3,字符’A’。
在 Scala 中,使用关键词 “var” 声明变量,使用关键词 “val” 声明常量。
声明变量范例如下:
var myVar : String = "Foo"
var myVar : String = "Too"
以上定义了变量 myVar,我们可以修改它。
声明常量范例如下:
val myVal : String = "Foo"
以上定义了常量 myVal,它是不能修改的。如果程序尝试修改常量 myVal 的值,程序将会在编译时报错。
变量类型声明
变量的类型在变量名之后等号之前声明。定义变量的类型的语法格式如下:
var VariableName : DataType [= Initial Value]
或
val VariableName : DataType [= Initial Value]
变量声明不一定需要初始值,以下也是正确的:
var myVar :Int;
val myVal :String;
变量类型引用
在 Scala 中声明变量和常量不一定要指明数据类型,在没有指明数据类型的情况下,其数据类型是通过变量或常量的初始值推断出来的。
所以,如果在没有指明数据类型的情况下声明变量或常量必须要给出其初始值,否则将会报错。
var myVar = 10;
val myVal = "Hello, Scala!";
以上范例中,myVar 会被推断为 Int 类型,myVal 会被推断为 String 类型。
Scala 多个变量声明
Scala 支持多个变量的声明:
val xmax, ymax = 100 // xmax, ymax都声明为100
如果方法返回值是元组,我们可以使用 val 来声明一个元组:
scala> val pa = (40,"Foo")
pa: (Int, String) = (40,Foo)
干货推荐
附录:Scala 教程:系列文章
- 一、Scala 教程: 教程
- 二、Scala 教程: 简介
- 三、Scala 教程: 安装
- 四、Scala 教程: 基础语法
- 五、Scala 教程: 数据类型
- 六、Scala 教程: 中文乱码解决
- 【当前读到】七、Scala 教程: 变量
- 八、Scala 教程: 访问修饰符
- 九、Scala 教程: 运算符
- 十、Scala 教程: if…else 语句
- 十一、Scala 教程: 循环
- 十二、Scala 教程: 函数
- 十三、Scala 教程: 闭包
- 十四、Scala 教程: 字符串
- 十五、Scala 教程: 数组
- 十六、Scala 教程: Collection
- 十七、Scala 教程: Iterator(迭代器)
- 十八、Scala 教程: 类和对象
- 十九、Scala 教程: Trait(特征)
- 二十、Scala 教程: 模式匹配
- 二十一、Scala 教程: 正则表达式
- 二十二、Scala 教程: 异常处理
- 二十三、Scala 教程: 提取器(Extractor)
- 二十四、Scala 教程: 文件 IO
- 二十五、Scala 教程: do…while 循环
- 二十六、Scala 教程: 函数 – 默认参数值
- 二十七、Scala 教程: 高阶函数
- 二十八、Scala 教程: 函数嵌套
- 二十九、Scala 教程: Map(映射)
- 三十、Scala 教程: 指定函数参数名
- 三十一、Scala 教程: 偏应用函数
- 三十二、Scala 教程: 匿名函数
- 三十三、Scala 教程: 元组
- 三十四、Scala 教程: 函数传名调用(call-by-name)
- 三十五、Scala 教程: 递归函数
- 三十六、Scala 教程: Set(集合)
- 三十七、Scala 教程: 函数柯里化(Currying)
- 三十八、Scala 教程: 函数 – 可变参数
- 三十九、Scala 教程: Option(选项)
- 四十、Scala 教程: do…while 循环
- 四十一、Scala 教程: while 循环
- 四十二、Scala 教程: List(列表)
- 四十三、Scala 教程: break 语句