当前位置: 首页 > article >正文

Scala_【2】变量和数据类型

第二章

  • 注释
  • 标识符的命名规范
    • 命名规则
    • 关键字
  • 变量
  • 字符串输出
  • 数据类型关系
  • 变量和数据类型
    • 整数类型(Byte、Short、Int、Long)
    • 浮点类型(Float、Double)
    • 字符类型(Char)
    • 布尔类型(Boolean)
    • 空类型
  • 数值类型间转换
    • 数值类型自动转换
    • 强制类型转换
    • 数值类型和String类型间转换

注释

在这里插入图片描述

标识符的命名规范

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


http://www.kler.cn/a/450094.html

相关文章:

  • 有没有检测吸烟的软件 ai视频检测分析厂区抽烟报警#Python
  • webrtc获取IceCandidate流程
  • 安装CPU版的torch(清华源)
  • 一个比RTK或redux更轻量级更易使用的 React 第三方状态管理工具库的配置与使用
  • 菜鸟带新鸟——基于EPlan2022的部件库制作
  • Spring Boot 中的 @Scheduled 定时任务以及开关控制
  • 批量生成二维码,助力数字化管理-Excel易用宝
  • Debezium日常分享系列之:Debezium 3.0.5.Final发布
  • 腾讯云云开发 Copilot具有以下优势
  • 外连接转AntiJoin的应用场景与限制条件 | OceanBase SQL 查询改写系列
  • 微服务——数据管理与一致性
  • [前端]mac安装nvm(node.js)多版本管理
  • sqoop,flume草稿
  • animatediff 模型网盘分享
  • 专业的内外网数据交换方案 可解决安全、效率、便捷3大问题
  • 单例Bean
  • 数据迁移工具,用这8种!
  • 探索Moticon智能传感器鞋垫OpenGo的功能与优势
  • AI领域年度精彩报告┆国家优青马超教授:自动驾驶多模态场景理解与生成
  • 有监督学习 vs 无监督学习:机器学习的两大支柱
  • Vue.js组件开发-路由与视图切换
  • web-密码安全口令
  • Java内存区域进一步详解
  • Android 11添加电容笔电量监测需求
  • 学习threejs,THREE.PlaneGeometry 二维平面几何体
  • 解锁 GitBook 的奥秘:从入门到精通之旅