Scala类型转换

目录

Java (隐式类型转换)

Scala数值类型自动转换


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)


  }
}

测试截图

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值