Scala学习笔记(2)-类型注意
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)-类型注意的更多相关文章
- Scala学习笔记--集合类型Queue,Set
补充知识:http://www.importnew.com/4543.html 正文开始 scala.collection.immutable scala.collection.mutable 队列Q ...
- 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性
基于.net的分布式系统限流组件 在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...
- Scala学习笔记及与Java不同之处总结-从Java开发者角度
Scala与Java具有很多相似之处,但又有很多不同.这里主要从一个Java开发者的角度,总结在使用Scala的过程中所面临的一些思维转变. 这里仅仅是总结了部分两种语言在开发过程中的不同,以后会陆续 ...
- python3.4学习笔记(二) 类型判断,异常处理,终止程序
python3.4学习笔记(二) 类型判断,异常处理,终止程序,实例代码: #idle中按F5可以运行代码 #引入外部模块 import xxx #random模块,randint(开始数,结束数) ...
- 02-Swift学习笔记-元组类型
02-Swift学习笔记-元组类型 元组类型由N个任意类型的数据组成(N>=0) 元组类型的数据称为"元素" eg var size = (x:100 , y:100) si ...
- Scala学习笔记之:tuple、array、Map
[TOC] 本文<快学Scala>的笔记 tuple学习笔记 tuple的定义 对偶是元组(tuple)的最简单形态--元组是不同类型的值的聚集. 元组的值是通过将单个值包含在圆括号中构成 ...
- 【大数据】Scala学习笔记
第 1 章 scala的概述1 1.1 学习sdala的原因 1 1.2 Scala语言诞生小故事 1 1.3 Scala 和 Java 以及 jvm 的关系分析图 2 1.4 Scala语言的特点 ...
- 机器学习(三)--- scala学习笔记
Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. Spark是UC Berkeley AMP lab所开源的类Had ...
- Scala学习笔记(二):object、伴生对象和基本类
object object 是只有一个实例的类.它的定义与Java中的class类似,如: // 单例对象 object AppEntry { def main(args: Array[String] ...
随机推荐
- [GPU] CUDA for Deep Learning, why?
又是一枚祖国的骚年,阅览做做笔记:http://www.cnblogs.com/neopenx/p/4643705.html 这里只是一些基础知识.帮助理解DL tool的实现. 最新补充:我需要一台 ...
- [OpenCV] Samples 02: Mat - 图像矩阵
前言 一.简介 Ref:IplImage, CvMat, Mat 的关系 Mat是opencv2.0推出的处理图像的新的数据结构,现在越来越有趋势取代之前的cvMat和lplImage. 相比之下Ma ...
- ns-3 的下载、编译以及 Eclipse 的相关配置
0. 写在前面 对于初次接触Linux系统的人来说,ns-3 的安装似乎并不友好.但其实仅仅要按部就班地来做,其安装过程也没有看上去的那么复杂.本文将官方 Wiki 中的安装过程稍作梳理,希望能为刚開 ...
- 假设数组a有n个元素,元素取值范围是1~n,如何判定数组是否存在重复元素
方法一:位图法,原理是首先申请一个长度为n且均为’0’组成的字符串,字符串的下标即为数组a[]中的元素,然后从头开始遍历数组a[N],取每个数组元素的值,将其对应的字符串中的对应位置置1,如果已经置过 ...
- Mybatis -- 批量更新 -- updateBatch
mysql数据库配置: 数据库连接必须配置:&allowMultiQueries=true并且‘&’ 用&替换 jdbc.url=jdbc:mysql://192.168.10 ...
- ios开发之--armv7,armv7s,arm64,i386,x86_64详解
有时候在运行的时候,经常出现诸如i386的错误,最新一些可能会出现 No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch ...
- django学习笔记:AdminSite界面配置
(一)重定义字段顺序: 修改对应应用目录下的admin.py class PollAdmin(admin.ModelAdmin): fields = ['pub_date', 'questio ...
- MongoDB(六)-- 集群搭建
一.集群介绍 sharding通过将数据集分布于多个也称作分片(shard)的节点上来降低单节点的访问压力.每个分片都是一个独立的数据库,所有的分片组合起来构成一个逻辑上的完整意义的数据库.因此,分片 ...
- Ruby Tutorial
http://www.tutorialspoint.com/ruby/ruby_quick_guide.htm http://www.cnblogs.com/PurpleCow/archive/201 ...
- 在线电路编程 (ICP)
通过在线电路编程(ICP)编程Flash.如果产品在开发中,或在终端客户的产品需要固件升级,采用硬件编程模式非常困难且不方便.采用ICP方式将很简单,且不需要将微控制器从板上拆下来.ICP方式同样允许 ...