当前位置:网站首页>Scala类型转换
Scala类型转换
2022-08-02 08:20:00 【Hyf 。】
目录
Java (隐式类型转换)
原则:精度小的类型自动转换为精度大的数值类型,这 个就是自动类型转换(隐式转换)。有它对应的类型就输出什么类型,如果没有它的类型,就会遵循从精度小的数值类型自动转换为精度大的数值类型。
package chapter01;
public class TestDataTypeConversion {
public static void main(String[] args) {
byte b = 10;
test(b);
char c = 'a';
test(c);
//精度小的类型自动转换为精度大的数值类型,这个就是自动类型转换(隐式转换)
}
public static void test(byte b){
System.out.println("bbb");
}
public static void test(short s){
System.out.println("sss");
}
public static void test(char c){
System.out.println("ccc");
}
public static void test(int i){
System.out.println("iii");
}
}代码测试

Scala数值类型自动转换
char类型只能转换成int类型
原则:当 Scala 程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数值类型,这 个就是自动类型转换(隐式转换)。数据类型按精度(容量)大小排序为:

基本说明:
(1)自动提升原则:有多种类型的数据混合运算时,系统首先自动将所有数据转换成精度大的那种数据类型,然后再进行计算。
(2)把精度大的数值类型赋值给精度小的数值类型时,就会报错,反之就会进行自动类型转换。
(3)(byte,short)和char之间不会相互自动转换。
(4)byte,short,char他们三者可以计算,在计算时首先转换为int类型。
运行代码
package chapter02
object Test_08DataTypeConversion {
def main(args: Array[String]): Unit = {
//(1)自动提升原则:有多种类型的数据混合运算时,系统首先自动将所有数据转换成
// 精度大的那种数据类型,然后再进行计算。
val a1:Byte = 10
val b1:Long = 2353L
val result1 :Long=(a1+b1)
val result2 :Int =(a1+b1.toInt) //强制数值类型转换
//(2)把精度大的数值类型赋值给精度小的数值类型时,就会报错(除非强制数值类型转换),反之就会进行自动
//类型转换。
val a2:Byte =8
val b2:Int =a2
// val c2:Byte =b2 //会报错的,除非强制数值类型转换
//(3)(byte,short)和 char 之间不会相互自动转换。
val a3:Byte =9
val b3:Char ='a'
//val c3:Byte =b3 //虽然IDEA没有报错,但是它是错误的,除非强制数值类型转换
val c3:Int = b3
println(c3)
//(4)byte,short,char 他们三者可以计算,在计算时首先转换为 int 类型。
val a4:Byte =12
val b4:Short=25
val c4:Char ='c'
val result4:Int=a4+b4
val result44:Int=a4+b4+c4
println(result44)
}
}测试截图

边栏推荐
- unity pdg 设置隐藏不需要的节点以及实现自动勾选自动加载项
- 文章解读 -- FlowNet3D:Learning Scene Flow in 3D Point Clouds
- day_05 time 模块
- Write a small game in C (three chess)
- pnpm:简介
- RetinaFace: Single-stage Dense Face Localisation in the Wild
- Redisson distributed lock source code analysis for high-level use of redis
- postman使用方法
- uvm-phase机制
- tf.where使用
猜你喜欢

Mysql Mac版下载安装教程

EPSANet: An Efficient Pyramid Split Attention Block on Convolutional Neural Network

(Note)阿克西斯ACASIS DT-3608双盘位硬盘阵列盒RAID设置

Stop mental exhaustion Daily sharing
MySQL ODBC驱动简介

PyQt5 (a) PyQt5 installation and configuration, read from the folder and display images, simulation to generate the sketch image

RestTemlate源码分析及工具类设计

如何做好项目管理

用C写小游戏(三子棋)

pycharm的基本使用教程(1)
随机推荐
Shell becomes canonical and variable
Button to control the running water light (timer)
(Note)阿克西斯ACASIS DT-3608双盘位硬盘阵列盒RAID设置
Redisson distributed lock source code analysis for high-level use of redis
Stop mental exhaustion Daily sharing
UVM事务级建模
主流监控系统工具选型及落地场景参考
PyCharm使用教程(详细版 - 图文结合)
day_05 time 模块
R语言plotly可视化:plotly可视化回归模型实际值和回归预测值的散点图分析回归模型的预测效能、一个好的模型大部分的散点在对角线附近(predicted vs actual)
Detailed explanation of calculation commands in shell (expr, (()), $[], let, bc )
RestTemlate源码分析及工具类设计
A young man with strong blood and energy actually became a housekeeper. How did he successfully turn around and change careers?
MySQL读写分离与主从延迟
MySQL 中 count() 和 count(1) 有什么区别?哪个性能最好?
力扣:第 304 场周赛
Flink 程序剖析
PyCharm usage tutorial (more detailed, picture + text)
USACO美国信息学奥赛竞赛12月份开赛,中国学生备赛指南
Pycharm (1) the basic use of tutorial