1. 程式人生 > >Scala基礎型別

Scala基礎型別

//integer字面量
//integer字面量包含 byte,short,int,long和相關的進位制型別
//如果數值已0x或者0X開頭的,它作為16進位制,0-9作為A-F申明
val hex = 0x5
val hex2 = 0x00FF
val hex3 = 0xcafebabe
println(hex)
println(hex2)
println(hex3)
//輸出的時候都是以10進位制輸出的
//如果以一個0開始的,將作為8進位制,並且只包含0-7
// val oct = 035
// val nov = 0777
// val dec = 0321
// println(oct)
// println(nov)
// println(dec)
//輸出的時候都是以10進位制輸出的,從2.10的版本之後就取消了八進位制
//如果開始沒有0,和其他的修飾就為10進位制
val dec1 = 31
val dec2 = 255
val dec3 = 20
println(dec1)
println(dec2)
println(dec3)
//如果字面量的後面結尾為L或者l,將作為Long型別,否則為Int型別
val prog = 0xCAFEBABEL
val tower = 35L
var of = 31l
println(prog)
println(tower)
println(of)
//如果是short和Byte型別的話,需要申明
val shortVal: Short = 367
val byteVal: Byte = 38
println(shortVal)
println(byteVal)
//浮點型字面量
//浮點型字面量由十進位制數字組成,可選地包含小數點,可選地後跟E或E和指數,列印預設為double型別
val big = 1.234
val bigger = 1.2345e1
val biggerStill = 123E45
println(big)
println(bigger)
println(biggerStill)
//如果需要打印出來的為Float型別的話,需要在後面加上F或者f
val little = 1.2345F
val littleBigger = 3e5f
//也可以手動設定為Double型別
val antherDouble = 3e5
val yetAnther = 3e5D
println("float:" + little)
println("float:" + littleBigger)
println("double:" + antherDouble)
println("double:" + yetAnther)
//字元字面量
//字元字面量由單引號之間的任何Unicode字元組成
val a = 'A'
println("char:" + a)
// 除了在單引號之間提供明確的字元外,您還可以
//可以為前面的字元程式碼點提供八進位制或十六進位制數
//通過反斜槓。 八進位制數必須介於'\ 0'和'\ 377'之間。 對於
//例如,字母A的Unicode字元程式碼點是101八進位制
val c = '\101'
println("unicode:" + c)
val d = '\u0041'
println("char:" + d)
val f = '\u0044'
println("char:" + f)
val B\u0041\u0044 = 1
println("bad:" + B\u0041\u0044)
val backslash = '\\'
println("backslash:" + backslash)
//字串是比較常用的型別,這個是需要使用雙引號進行申明
val hello = "hello"
println("hello :" + hello)
val escapes = "\\\"\'"
println("escapes:" + escapes)
//進行字串排版輸出
println("""while wo asd  fa s sdf   asdf sasdf  sasdf
            asdaa asdas asd  heloow tkahsj fsjasda """)
//這上面是沒有對齊的,我們可以使用stripMargin方法
println("""|while wo asd  fa s sdf   asdf sasdf  sasdf
           |asdaa asdas asd  heloow tkahsj fsjasda """.stripMargin)
//符號字面量
//符號文字寫成'ident,其中ident可以是任何字母數字識別符號。
//此類文字對映到預定義類scala.Symbol的例項。
//具體來說,文字'cymbal將由編譯器擴充套件為工廠方法呼叫:Symbol(“cymbal”)。
//符號文字通常用於您只使用動態型別語言中的識別符號的情況
val s = 'aSymbol
println("Symbol:" + s)
println("Symbol name:" + s.name)
//boolean 字面量,boolean 取值為true或者false
val bool = true
val bool2 = false
println(bool)
println(bool2)