文档章节

scala入门之变量定义

柳哥
 柳哥
发布于 2014/06/05 19:34
字数 557
阅读 5481
收藏 1
点赞 0
评论 0

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,如下:

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

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


© 著作权归作者所有

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

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

nitycka ⋅ 2017/11/01 ⋅ 0

写给Java程序员的Scala入门教程

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

羊八井 ⋅ 2016/07/25 ⋅ 20

Scala--基础入门

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

xiaoxiaomo ⋅ 2016/04/04 ⋅ 2

写给Python程序员的Scala入门教程

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

羊八井 ⋅ 2015/11/29 ⋅ 2

Scala极速入门

定义 Scala语言是一种面向对象语言,同时又结合了命令式(imperative)和函数式(functional)编程风格。官网描述:Object-Oriented Meets Functional(面向对象遇到函数式编程)。 安装 下载...

Jackson_Mu ⋅ 2015/01/04 ⋅ 58

为Play初学者准备的Scala基础知识

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

joymufeng ⋅ 2017/05/16 ⋅ 0

groovy closure初次使用

groovy closure初次使用 closure是groovy里比较有特色的一个东西,有点类似与java8里的lambda表达式,但是比lambda有着 更加灵活的应用 语法上的差异 java8 lambda groovy clouser 注意的主要...

来福马斯特 ⋅ 2017/09/19 ⋅ 0

scala入门-02基础知识->方法

首先在src下的main下的scala下创建一个包为org.scala.base 创建一个scala类名称为HelloWorld.scla 由于main方法要位于object对象中,所以我们创建一个object 名称为HelloWorld 并增加main方法...

stark_summer ⋅ 2015/01/09 ⋅ 0

scala入门-04类(class)的使用

在scala下创建一个包名为org.scala.clazz ,创建scala类名为OOPInScala.scala ,并增加object OOPInScala (图片上包明有误,应该是org.scala.clazz) 创建一个User类 并增加name和age字段 调用...

stark_summer ⋅ 2015/01/12 ⋅ 0

为Play初学者准备的Scala基础知识

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

joymufeng ⋅ 2016/10/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

apollo配置中心的学习笔记

公司现在配置文件太多了,导致配置文件修改起来还是非常麻烦的。在boss(业务运营支撑系统)中,配置文件是存放在jar包的,通过应用jar包来引用配置文件(区分不同环境)。这种方式虽然能够满足...

miaojiangmin ⋅ 1分钟前 ⋅ 0

Jena增删改查AP

插入、更新数据 public static void insert(){ String query = "PREFIX book: <http://www.book.com/jinyong/> \n" + " INSERT DATA \n" + ......

Vincent-Duan ⋅ 1分钟前 ⋅ 0

springMVC之与json数据交互方法

因为我也要返回json数据。所以需要这个注解@ResponseBody,把Java对象转换成json字符串 注意: 1、@RequestBody不能省,因为前台发过来的数据是json数据,得用这个注解去解析该怎么接收这些数...

颖伙虫 ⋅ 5分钟前 ⋅ 0

用实例域代替序号(31)

1、许多枚举天生就与一个单独的int 值相关联 ordinal 方法,返回枚举常量在类型中的数字位置 下述,枚举修改很不方便,不好维护 永远不要根据枚举的序数导出与他相关联的值 而是将他保存在一...

职业搬砖20年 ⋅ 7分钟前 ⋅ 0

并发编程---ConcurrentHashMap源码解析

ConcurrentHashMap是java中为了解决HashMap不能支持高并发而设计的新的实现。 ConcurrentHashMap的类结构 public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements C......

千古一梦888 ⋅ 10分钟前 ⋅ 0

微服务 WildFly Swarm 简介

我们将看到的最后一个Java微服务框架是一个相对较新的场景,它利用了 JBoss WildFly 应用服务器中已试过且受信任的 JavaEE 功能。WildFly Swarm 是 WildFly 应用服务器的一个完整的拆下来的组...

woshixin ⋅ 15分钟前 ⋅ 0

android apk 瘦身

头条APK瘦身之路 随着版本迭代,功能增加安装包体积也会慢慢增大。 今日头条576版本APK达到了25M,通过一系列的优化,到目前的607版本为12M。本文主要是介绍头条APK瘦身中用到的一些方法。 ...

GoldenVein ⋅ 19分钟前 ⋅ 1

mac机器学习开发环境部署及helloworld

一、下载并安装Anaconda2.7 https://repo.anaconda.com/archive/Anaconda2-5.2.0-MacOSX-x86_64.pkg 路径:/Users/shijun/anaconda2 二、运行Anaconda Navigator -> Environments -> base(ro......

八戒八戒八戒 ⋅ 30分钟前 ⋅ 0

关于日常开发的经验总结(Java),持续更新中

常量尽量使用枚举来表示,这样表现力会很强,因为枚举比一个常量类要有更多的扩展性 方法的入参和出参尽量不要使用Map,因为Map会让调用者感到迷惑,他不知道你里面装的什么,面向对象的开发...

小99 ⋅ 30分钟前 ⋅ 0

IDEA创建SpringMVC+Mybatis+Maven项目

视频如下(加载有点慢请见谅,服务器不太好): 视频

影狼 ⋅ 31分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部