码迷,mamicode.com
首页 > 其他好文 > 详细

a.变量及基本数据结构

时间:2016-12-12 22:55:44      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:nic   执行   运算符   second   val   lis   转义   运算符优先级   ring   

1. Scala 中有两种类型的变量:可变变量和不可变变量 ,可变变量使用关键字var定义,不可变变量用val定义 ;

2.Scala 中变量定义的时候必须初始化赋值,可以使用占位符(_)来初始化,基本类型String使用“_”初始化之后是null,Float/Double/Int初始化之后为0,Char初始化后为 ?(注意: 不能在方法中使用占位符来申明);

3.使用关键字lazy修饰的变量只有真正使用的时候才会被赋值,但是lazy只能修饰val类型的变量(为了避免程序运行过程中变量未被使用便被重新赋值);

4.Float类型数据必须在浮点数后面加上F/f,否则会被类型推导为Double;

5.Double 类型的数据可以采用指数表示,例如: 0.31415e1 == 3.1415;

6.Char 类型使用单引号包裹,特殊字符使用转义符(\)或Unicode编码;

7.String类型使用三个双引号(""")包裹可原样输出;

8.Scala提供了+,- 符号来表示正负数,并且可直接用于计算;

9.Scala 使用 == 比较是基于内容而非引用!!! 例如: "hi" == new String("hi") 和 1 == 1.0 都返回 true,但 1 == "1" 返回false;

10.Scala 中定义的String是基于java.lang.String 而来的,所以java.lang.String中的方法都可使用,另外还隐式转换封装了一些新的方法。例如: reverse、map、drop、slice等;

11.运算符优先级与java相似,存在多个优先级运算时从左到右执行,但 ::(List构造)和:::(List拼接)是个例外!;

12.元组可以将不同的类型放在同一个变量中,通过变量名._N(N 为索引号,从1开始),还可以将元组的内容进行提取,对变量进行初始化。例如:1. var tuple = ("hello",‘cheng‘,1), tuple._1 = "hello", 2. val (first,second,third) = tuple,first:String = hello,second :String = cheng;

13.符号类型(Symbol)定义需要使用  `  符号,主要起标识作用,再匹配,内容判断中比较常用;

 

a.变量及基本数据结构

标签:nic   执行   运算符   second   val   lis   转义   运算符优先级   ring   

原文地址:http://www.cnblogs.com/zfdd/p/6165957.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!