Scala类型注意事项:

1.Any是绝对的根,所有的其他可实例化类型均有AnyVal和AnyRef派生。

2.所有AnyVal的类型成为值类型(所有数值类型、char、Booble和Unit)

3.而其他类型都以AnyRef(引用类型)为根,并且只能做为对象在堆中分配内存,通过一个内存引用来访问。

4.Scala中提供了null类型表示空类型,意味着对象不指向任何堆内存空间。

5.Scala语法更加优先使用实际类型和实例而不是保留字,如null

6.Unit类型与上述类型均不同,它是一种指示没有任何数据的类型,类似于java中的Void

定义Unit变量使用()即可,也可以用Unit定义值或变量,通常用于定义函数和表达式,如无返回值函数

Unit类型在Scala中作为不返回任何结果的或表达式类型,如println函数返回的是一个Unit类型,因为不反悔任何结果

7.常用的类型操作

  asInstanceOf[<type>]  将值转化为指定类型,建议在此之前使用to<type>完成操作转换,以免导致错误

eg:scala> 5.asInstanceOf[Long]

res2: Long = 5

getClass 返回一个值的类型

scala> (1.0/5).getClass
res3: Class[Double] = double

  isInstanceOf 如果这个值有指定类型则返回true

scala> (5.0).isInstanceOf[Float]
res4: Boolean = false

  hashcode 散列码

scala> "A".hashCode
res6: Int = 65

scala> 'A'.hashCode
res7: Int = 65

to<type> 转换函数

scala> 20.toByte
res8: Byte = 20

scala> 47.toFloat
res9: Float = 47.0

  toString 将值输出为字符串

eg:scala> (3.0/4.0).toString
res10: String = 0.75

8.其他

Char类型举例:

scala> val c='A'
c: Char = A

scala> val i:Int =c
i: Int = 65

scala> val t:Char=c
t: Char = A

Boolean类型举例:

scala> val isTrue= !true
isTrue: Boolean = false

scala> val isfalse= !false
isfalse: Boolean = true

scala> val unequal=(5!=6)
unequal: Boolean = true

scala> val isLess =(5<6)
isLess: Boolean = true

与运算符

scala> val unequalAndLess= unequal & isLess
unequalAndLess: Boolean = true

scala> val definitelyFalse=false && unequal
definitelyFalse: Boolean = false

如果需要一个值的状态为Boolean类型,需要显式比较

scala> val zero=0
zero: Int = 0

scala> val isValid=zero > 0
isValid: Boolean = false

Unit类型

scala> val nada=()
nada: Unit = ()

9.元祖

元祖的创建和使用

scala> val info=(5,"Keroben",true)
info: (Int, String, Boolean) = (5,Keroben,true)

scala> val name=info._2
name: String = Keroben

使用->创建key和value

scala> val red="red" -> "Oxff0000"
red: (String, String) = (red,Oxff0000)

scala> val reversed =red._2->red._1   #转化类型
reversed: (String, String) = (Oxff0000,red)

Scala学习笔记(2)-类型注意的更多相关文章

  1. Scala学习笔记--集合类型Queue,Set

    补充知识:http://www.importnew.com/4543.html 正文开始 scala.collection.immutable scala.collection.mutable 队列Q ...

  2. 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性

    基于.net的分布式系统限流组件   在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...

  3. Scala学习笔记及与Java不同之处总结-从Java开发者角度

    Scala与Java具有很多相似之处,但又有很多不同.这里主要从一个Java开发者的角度,总结在使用Scala的过程中所面临的一些思维转变. 这里仅仅是总结了部分两种语言在开发过程中的不同,以后会陆续 ...

  4. python3.4学习笔记(二) 类型判断,异常处理,终止程序

    python3.4学习笔记(二) 类型判断,异常处理,终止程序,实例代码: #idle中按F5可以运行代码 #引入外部模块 import xxx #random模块,randint(开始数,结束数) ...

  5. 02-Swift学习笔记-元组类型

    02-Swift学习笔记-元组类型 元组类型由N个任意类型的数据组成(N>=0) 元组类型的数据称为"元素" eg var size = (x:100 , y:100) si ...

  6. Scala学习笔记之:tuple、array、Map

    [TOC] 本文<快学Scala>的笔记 tuple学习笔记 tuple的定义 对偶是元组(tuple)的最简单形态--元组是不同类型的值的聚集. 元组的值是通过将单个值包含在圆括号中构成 ...

  7. 【大数据】Scala学习笔记

    第 1 章 scala的概述1 1.1 学习sdala的原因 1 1.2 Scala语言诞生小故事 1 1.3 Scala 和 Java  以及 jvm 的关系分析图 2 1.4 Scala语言的特点 ...

  8. 机器学习(三)--- scala学习笔记

    Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. Spark是UC Berkeley AMP lab所开源的类Had ...

  9. Scala学习笔记(二):object、伴生对象和基本类

    object object 是只有一个实例的类.它的定义与Java中的class类似,如: // 单例对象 object AppEntry { def main(args: Array[String] ...

随机推荐

  1. [转]总结使用Unity 3D优化游戏运行性能的经验

    转载自:http://www.gameres.com/msg_221889.html 作者:Amir Fasshihi 流畅的游戏玩法来自流畅的帧率,而我们即将推出的动作平台游戏<Shadow ...

  2. [Bayesian] “我是bayesian我怕谁”系列 - Exact Inference

    要整理这部分内容,一开始我是拒绝的.欣赏贝叶斯的人本就不多,这部分过后恐怕就要成为“从入门到放弃”系列. 但,这部分是基础,不管是Professor Daphne Koller,还是统计学习经典,都有 ...

  3. Java Comparable和Comparator

    Java中在进行数据排序时,Comparable和Comparator不可缺少会遇得到.普通的String.Integer等类型,已经实现了Comparable接口,而有些时候,我们须要对一些其它不存 ...

  4. mongodb 在 Ubuntu系统上的安装及卸载

    mongodb官网 The mongodb-org-server package provides an initialization script that starts mongod with t ...

  5. mysql 字符串转数据丢失精度,mysql转换丢失精度,mysql CAST 丢失精度

    mysql 字符串转数据丢失精度,mysql转换丢失精度,mysql CAST 丢失精度 =============================== ©Copyright 蕃薯耀 2017年9月1 ...

  6. PostgreSQL主备切换

    备库如何激活 在PostgreSQL(HOT-Standby)如主库出现异常.备库如何激活:来替换主库工作.有下列2种方式 备库在recovery.conf文件中有个配置项trigger_file.它 ...

  7. TCP三次握手原则

    “已失效的连接请求报文段”的产生在这样一种情况下: client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server. 本来这是一 ...

  8. CPU特性漏洞测试(Meltdown and Spectre)

    2018年1月4日,国外安全研究人员披露了名为"Meltdown"和"Spectre"两组CPU特性漏洞,该漏洞波及到近20年的Intel, AMD, Qual ...

  9. gcc的选项

    -g: 是一个编译选项,即在源代码编译的过程中起作用,让gcc把更多调试信息(也就包括符号信息)收集起来并将存放到最终的可执行文件内. -rdynamic:   却是一个 连接选项 ,它将指示连接器把 ...

  10. intellij中使用git插件将项目上传到码云

    参考帖子: git上传本地Intellij idea 项目到码云的git仓库中(评论中有彩蛋,一定要看) IntelliJ-IDEA和Git.GitHub.Gitlab的使用 使用idea上传项目到码 ...