Scala_【2】变量和数据类型

第二章

注释

标识符的命名规范

Scala对各种变量、方法、函数等命名时使用的字符序列称为标识符

命名规则

  1. 以字母或者下划线开头,后接字母、数字、下划线
  2. 以操作符开头,且只包含操作符(+ - * / # !等)
  3. 第一种和第二种拼接,第一种在前,二者以下划线分隔
  4. 用反引号`...`包括的任意字符串,即使是关键字(39个)也可以

关键字

Scala关键字(39个)

  • package, import, class, object, trait, extends, with, type, for
  • private, protected, abstract, sealed, final, implicit, lazy, override
  • try, catch, finally, throw
  • if, else, match, case, do, while, for, return, yield
  • def, val, var
  • this, super
  • new
  • true, false, null

变量

基本语法: var | val 变量名 [: 变量类型] = 变量值

说明:在Scala中声明一个变量时,可以不指定类型,编译器根据值确定

字符串输出

数据类型关系

  1. Scala中一切数据都是对象,都是Any的子类
  2. Scala中数据类型分为两大类:数值类型(AnyVal)、引用类型(AnyRef),不管是值类型还是引用类型都是对象
  3. Scala数据类型仍然遵守,低精度的值类型向高精度值类型,自动转换(隐式转换)
  4. Scala特殊的类型之Null,它只有一个实例就是Null,它是所有引用类型(AnyRef)的子类
  5. Scala特殊类型之Nothing,是所有数据类型的子类,主要在一个函数没有正常返回值时使用

变量和数据类型

整数类型(Byte、Short、Int、Long)

数据类型 描述
Byte [1] 8位有符号补码整数。数值区间为 -128 到 127
Short [2] 16位有符号补码整数。数值区间为 -32768 到 32767
Int [4] 32位有符号补码整数。数值区间为 -2147483648 到 2147483647
Long [8] 64位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807

浮点类型(Float、Double)

数据类型 描述
Float [4] 32位,IEEE 754标准的单精度浮点数
Double [8] 64位, IEEE 754标准的双精度浮点数

字符类型(Char)

字符类型可以表示单个字符,字符类型是Char,16位无符号Unicode字符(2个字节),区间值为U+0000到U+FFFF。

布尔类型(Boolean)

  1. 布尔类型也叫Boolean类型,Booolean类型数据只允许取值true和false
  2. boolean类型占1个字节。

空类型

数据类型 描述
Unit 表示无值,用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()
Null 所有AnyRef的子类型,Null 类型只有一个实例值null
Nothing 所有类型的子类型,是一个象征意义,用于辅助类型推导

数值类型间转换

数值类型自动转换

当Scala程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数值类型,这个就是自动类型转换(隐式转换)

强制类型转换

自动类型转换的逆过程,将精度大的数值类型转换为精度小的数值类型。使用时要加上强制转函数,但可能造成精度降低或溢出,格外要注意

数值类型和String类型间转换

上一章
Scala_【1】概述
下一章
Scala_【3】运算符

相关推荐
不写八个37 分钟前
Express教程【003】:Express获取查询参数
开发语言·express
两点王爷5 小时前
Java spingboot项目 在docker运行,需要含GDAL的JDK
java·开发语言·docker
万能螺丝刀17 小时前
java helloWord java程序运行机制 用idea创建一个java项目 标识符 关键字 数据类型 字节
java·开发语言·intellij-idea
zqmattack7 小时前
解决idea与springboot版本问题
java·spring boot·intellij-idea
Honmaple7 小时前
IDEA修改JVM内存配置以后,无法启动
java·ide·intellij-idea
朱剑君7 小时前
编程之巅:语言的较量
开发语言
Humbunklung8 小时前
Rust 编程实现猜数字游戏
开发语言·后端·rust
vvilkim8 小时前
深入理解C#数据类型:从基础到高级应用
开发语言·c#
真实的菜8 小时前
(22)大文件流式处理
java·开发语言
fpcc9 小时前
跟我学c++中级篇——动态库的资源处理
开发语言·c++