文档章节

scala入门之变量定义

柳哥
 柳哥
发布于 2014/06/05 19:34
字数 557
阅读 5578
收藏 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,如下:

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

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


© 著作权归作者所有

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

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

nitycka
2017/11/01
0
0
写给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
为Play初学者准备的Scala基础知识

1 前言 本文的主要目的是为了让Play Framework的初学者快速了解Scala语言,算是一篇Play Framework的入门前传吧。 使用PlayFramework可以极大的提高开发效率,但是需要注意,PlayJava入门很简...

joymufeng
2017/05/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么 vue 默认导出的是 vue.common.js,它和 vue.js 的区别在哪里,又有什么关系?

这个问题在囧克斯的博客中有提到。 Vue 最早会打包生成三个文件,一个是 runtime only 的文件 vue.common.js,一个是 compiler only 的文件 compiler.js,一个是 runtime + compiler 的文件 ...

粒子数反转
10分钟前
0
0
php正则表达式替换图片地址

<?php /*PHP正则提取图片img标记中的任意属性*/ $str = '<center><img src="/uploads/images/20100516000.jpg" height="120" width="120"><br />PHP正则提取或更改图片img标记中的任意属性<......

mdoo
14分钟前
0
0
一个简单的系统监控脚本

一个简单的系统信息监控脚本 #!/bin/bash# DATE:20181018# System monitor by Kxvzinterval=5while :doecho '==========================================================...

Kxvz
17分钟前
0
0
七牛云助你度寒冬 | 每天 10:24, 新用户抢全额免单

近年来,中美贸易战、股市暴跌、房地产变天、人民币贬值等等,企业艰难生存于冰川夹缝之中,融资发展难上加难。 凛冬将至, 七牛云特此推出免单好礼,为新用户(2018 年 10 月 10 日后新注册...

七牛云
18分钟前
0
0
Echarts X轴刻度标签换行显示

xAxis: [ { 'type':'category', splitLine: {show: false}, axisLabel: { show: true,//是否显示 interval:0,//强制显示 ......

郭周园
23分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部