2.数据类型

作者: java大数据编程 | 来源:发表于2018-09-09 16:35 被阅读2次

    简介

      Scala的基本数据类型与Java中的基本数据类型是一一对应的,不同的是Scala的基本数据类型头字母必须大写。

    数据类型.jpg

    类型变量定义

    整数类型变量定义

    //16进制定义法
    scala> val x=0x29
    x: Int = 41
    
    //十进制定义法
    scala> val x=41
    x: Int = 41
    
    //八进制定义法
    scala> 051
    res0: Int = 41
    

    浮点类型变量定义

    //Double类型定义,直接输入浮点数,编译器会将其自动推断为Double类型
    scala> val doubleNumber=3.141529
    doubleNumber: Double = 3.141529
    
    //要定义Float类型浮点数,需要在浮点数后面加F或f
    scala> val floatNumber=3.141529F
    floatNumber: Float = 3.141529
    
    scala> val floatNumber=3.141529f
    floatNumber: Float = 3.141529
    
    //浮点类型的变量还可以采用指数表示法
    //浮点数指数表示法,e也可以是大写E,0.314529e1与0.314529*10等同
    scala> val floatNumber=0.314529e1
    floatNumber: Double = 3.14529
    

    字符变量定义

    //字符定义,用''将字符包裹
    scala> var charLiteral='A'
    charLiteral: Char = A
    

    字符串变量定义

    //字符串变量用""包裹
    scala> val helloWorld="Hello World"
    helloWorld: String = Hello World
    
    //要定义"Hello World",可以加入转义符\
    scala> val helloWorldDoubleQuote="\"Hello World\""
    helloWorldDoubleQuote: String = "Hello World"
    
    //如果希望能够原样输出字符串中的内容,则用三个引号"""将字符串包裹起来,如
    scala> println(""" hello cruel world, \n \\\\ \b \\, I am " experienced" programmer""")
     hello cruel world, \n \\\\ \b \\, I am " experienced" programmer
    

    布尔类型定义

    scala> var x=true
    x: Boolean = true
    

    类型操作

    算术运算

    //整数求和,编译器会将其转换为(1).+(2)执行
    scala> var sumVlaue=1+2
    sumVlaue: Int = 3
    
    //前一语句等同于下列语句
    scala> var sumVlaue=(1).+(2)
    sumVlaue: Int = 3
    
    //操作符重载,编译器会将其转换为(1).+(2L)执行
    scala> val longSum = 1 + 2L
    longSum: Long = 3
    
    //减法
    scala> 1-3
    res5: Int = -2
    
    //除法
    scala> 1/3
    res6: Int = 0
    
    //取模
    scala> 1%3
    res7: Int = 1
    
    //乘法
    scala> 1L*3L
    res8: Long = 3
    
    //scala中可以用+ -符号来表示正负数,例如-3 +3,并且可以加入到运算符当中
    scala> var y=1+ -3
    y: Int = -2
    

    关系运算

    //>运算符
    scala> 3 > -3
    res12: Boolean = true
    //<运算符
    scala> 3 < -3
    res13: Boolean = false
    //<=运算符
    scala> 3 <= -3
    res14: Boolean = false
    //<=运算符
    scala> 3 <=3
    res15: Boolean = true
    //<=运算符
    scala> !(3<= -3)
    res16: Boolean = true
    

    逻辑运算

    //逻辑与:&&
    scala> val bool=true
    bool: Boolean = true
    
    scala> bool && bool
    res17: Boolean = true
    //逻辑或:||
    scala> bool || bool
    res18: Boolean = true
    
    
    scala> bool || !bool
    res20: Boolean = true
    

    位运算

    // 00000001
    // 00000010
    // 00000000
    scala> 1 & 2
    res24: Int = 0
    
    // 00000001
    // 00000010
    // 00000011
    scala> 1 | 2
    res24: Int = 3
    
    // 00000001
    // 00000011
    // 00000010
    scala> 1 ^ 3
    res24: Int =2
    
    //00000001
    //11111110
    scala> ~1
    res24: Int =-2
    
    //左移位(shift left)
    //00000110
    //00001100
    scala> 6 << 1
    res29: Int = 12
    
    //右移位(shift left)
    //00000110
    //00000011
    scala> 6 >> 1
    res28: Int = 3
    
    //无符号右移(shift left)
    //11111111111111111111111111111111
    //00000000000000000000000000000001
    scala> -1 >>> 31
    res32: Int = 1
    

    对象比较

    scala> 1==1
    res34: Boolean = true
    
    scala> 1==1.0
    res35: Boolean = true
    
    scala> val x="Hello"
    x: String = Hello
    
    scala> val y="Hello"
    y: String = Hello
    
    //Scala中的对象比较不同于Java中的对象比较
    //Scala基于内容比较,而java中比较的是引用,进行内容比较时须定义比较方法
    scala> x==y
    res36: Boolean = true
    

    运算符优先级

      运算符优先级如下图所示,* / %优先级最高,依次类推。

    运算符优先级.jpg

    相关文章

      网友评论

        本文标题:2.数据类型

        本文链接:https://www.haomeiwen.com/subject/hkkdgftx.html