文档章节

scala入门之变量定义

柳哥
 柳哥
发布于 2014/06/05 19:34
字数 557
阅读 5605
收藏 1

scala有两种变量,valvarval类似于Java里的final变量(字节码反编译成Java,其实就是final的变量)。一旦初始化了,val就不能再被赋值。相反,var如同Java里面的非final变量,可以在它的生命周期中被多次赋值。下面演示如何定义val变量:


这个语句引入了msg作为字符串“hello,world!”的名字。它的类型是:java.lang.String,因为scala的字符串是由Java的String类实现的
如果曾经声明过Java变量,你会发现一个很显著的差别:无论是java.lang.String还是String都没有出现在对val变量的定义中。这个例子演示了被称为类型推断(type inference)的能力,它能让scala自动理解你省略了的类型。这里,你用字符串字面量初始化msg,因此scala推断msg的类型是String。对于可以由Scala解释器(或编译器)自动推断类型的情况,就没有必要非得写出类型标注不可。当然这也并不绝对,你可以根据自己的想法写明定义的类型,而且或许某些时候就应该这么做。写明类型标注不但可以确保scala编译器使用你想要用的类型,还有助于之后代码的阅读。Java的变量类型写在名称之前,相反,scala的变量类型写在其名称之后,用冒号分隔。如:

因为在scala程序里java.lang.*类型的简化名也是可见的,所以也可以写成如上例中msg3定义的那样。
由于msg,msg2,msg3是val类型变量,因此唯一不能做的就是再给它赋值。如果需要的是可以被重新赋值的变量,你应该使用var,如下:

想在解释器中跨行输入语句的话,只要不是在字符串、关键字等语句的中间进行换行,解释器将会在下一行回应一个竖线。如:

如果你发现了一些错误而解释器仍在等着更多的输入,你可以通过按两次回车键取消掉。


© 著作权归作者所有

共有 人打赏支持
柳哥
粉丝 206
博文 405
码字总数 347782
作品 0
杭州
技术主管
私信 提问
Scala编程语言视频教程|Scala视频教程

Scala编程语言视频教程 分享网盘下载——https://pan.baidu.com/s/1kUFL6Ub 密码: m7k4 Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于...

nitycka
2017/11/01
0
0
熟练的掌握Scala语言系列课程

课程名字:熟练的掌握Scala语言系列课程 课程网盘下载: http://pan.baidu.com/s/1pJuRAsV 密码: ahr3 课程内容: 共10章,58课时,总时长944分钟 想要深入研究spark,掌握好scala至关重要,目...

混坛魔王
2015/01/09
822
4
写给Java程序员的Scala入门教程

(原文链接:http://www.yangbajing.me/2016/07/24/写给java程序员的scala入门教程/,转载请注明) 之前因为Spark的引入,写了一篇《写给Python程序员的Scala入门教程》。那篇文章简单对比了...

羊八井
2016/07/25
4.2K
20
写给Python程序员的Scala入门教程

随着业务和数据的需要,我们引入了。对的支持还是挺好的,但毕竟它还是使用开发的,且现有的API并没有100%覆盖Python。所以就有了这篇文章,让Python程序员可以接触这门更高(级)、更快(速...

羊八井
2015/11/29
906
2
Scala--基础入门

简介/安装 Scala,是一门运行在JVM上的函数式面向对象语言,可以很好的兼容java。 1、首先安装一下JDK(略) 2、安装scala,官方下载:http://www.scala-lang.org/download/2.11.0.html; 3、配...

xiaoxiaomo
2016/04/04
65
2

没有更多内容

加载失败,请刷新页面

加载更多

课时17 第三课Spark内部原理剖析与源码阅读(五)

为何spark shuffle比mapreduce shuffle慢? 主要是spark shuffle的shuffle read阶段还不够优秀,它是基于hashmap实现的,shuffle read会把shuffel write阶段已经排序数据给重新转成乱序的,转...

刀锋
4分钟前
0
0
Function函数式接口

Function函数式接口传入一个参数,返回一个值。 然后我们使用这个写个demo看看: 输出: 接口内部还有两个default方法和一个static方法,然后我们先看一下static方法 返回一个始终返回其输入...

woshixin
19分钟前
1
0
开发者和架构师之间最大的区别是什么?

1、开发者和架构师之间最大的区别是什么? 架构师和开发者一样,也经常写代码,简单的说,开发者和架构师之间最大的区别就是技术领导力。 软件架构师的角色需要理解最重要的架构驱动力是什么...

James-
50分钟前
2
0
java框架学习日志-4

补充一些spring配置文件的方法。 设置别名: <!--通过name直接设置别名--> <bean name="user2" class="cn.sxt.factory.UserDynamicFactory"> </bean> <!--有id的情况下也可以设置......

白话
52分钟前
2
0
20181213 上课截图

小丑鱼00
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部