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】运算符

相关推荐
我是福福大王13 分钟前
MyBatis源码学习总结
后端·mybatis
农民也会写代码16 分钟前
dedecms织梦arclist标签noflag属性过滤多个参数
开发语言·数据库·sql·php·dedecms
玄明Hanko23 分钟前
生产环境到底能用Docker部署MySQL吗?
后端·mysql·docker
sayornottt24 分钟前
Rust中的动态分发
后端·rust
黯_森26 分钟前
Java面向对象
java·后端
小厂永远得不到的男人27 分钟前
WebSocket深度剖析:实时通信的终极解决方案实践指南
后端·websocket
289792400330 分钟前
理解volatile
后端·面试
斜月30 分钟前
Springboot wechatpay-java 微信支付实践
spring boot·后端
玄明Hanko31 分钟前
Quarkus+Docker最全面完整教程:手把手搞定Java云原生
后端·docker·云原生
tonydf31 分钟前
Semantic Kernel也能充当MCP Client
后端