基礎(chǔ)數(shù)據(jù)類(lèi)型

package jibenshujuleixing
/*
Kotlin 基本數(shù)值類(lèi)型包括 Byte8 Short16 Int32 Long64 Float32 Double64
不同于java的是字符不屬于數(shù)值類(lèi)型,是一個(gè)獨(dú)立的數(shù)據(jù)類(lèi)型

十進(jìn)制: 123
長(zhǎng)整型 :123L
16進(jìn)制以0x開(kāi)頭: 0x0F
2進(jìn)制以0b開(kāi)頭: 0b0001011
八進(jìn)制不支持

Doubles默認(rèn)寫(xiě)法:123.5
Floats 使用f或F為后綴 123.5f
可以使用下劃線使數(shù)字常量更加易讀
val oneMillion=1_000_000
val creditCarNumber=1234_5678_9012_3456L

*/

//---------------比較兩個(gè)數(shù)字---------------
/*
Kotlin 中沒(méi)有基礎(chǔ)數(shù)據(jù)類(lèi)型,只有封裝的數(shù)字類(lèi)型,每定一個(gè)變量,實(shí)際上Kotlin封裝了一個(gè)對(duì)象
這樣做可以保證不會(huì)出現(xiàn)空指針的情況。數(shù)字類(lèi)型也一樣,所以比較兩個(gè)數(shù)字的時(shí)候,就有比較數(shù)據(jù)大小和
比較兩個(gè)對(duì)象是否相同的區(qū)別了。
在Kotlin中,三個(gè)等號(hào)===表示比較對(duì)象的地址,兩個(gè)==表示比較對(duì)象的大小。
/
/
fun main(args: Array<String>) {

val a:Int=10_000
println(a===a)//true
//經(jīng)過(guò)裝箱,創(chuàng)建了兩個(gè)不同的對(duì)象
val boxedA:Int?=a
val anotherBoxedA:Int?=a
//封裝后對(duì)象地址不一樣,但是值是相同
println(boxedA===anotherBoxedA)// false
println(boxedA==anotherBoxedA)//true

}*/

//------------------類(lèi)型轉(zhuǎn)換--------------------
/*
由于有不同的表示方式,較小類(lèi)型并不是較大類(lèi)型的子類(lèi)型
也不能隱式轉(zhuǎn)換成較大的類(lèi)型,意味著在不進(jìn)行顯示轉(zhuǎn)換的情況下,不能將Byte賦值給Int
/
/

fun main(args: Array<String>) {
val b:Byte=1//OK,字面值是靜態(tài)檢測(cè)的
//val i:Int=b//錯(cuò)誤
//可以代用toInt方法
val i:Int=b.toInt()

每個(gè)類(lèi)型都有以下方法可以進(jìn)行轉(zhuǎn)換
toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char
 
//在編譯器能夠根據(jù)上下文推斷出數(shù)據(jù)類(lèi)型的情況下也是可以省略的
val l=1L+3//Long+Int=>Long

}*/

//-------------------位操作符-----------------------
/*fun main(args: Array<String>) {
var a=3
println(10.shl(1))//左移
println(10.shr(1))//右移
println(10.ushr(1))//無(wú)符號(hào)右移
println(a and 4)//與
println(1.or(1))//或
println(1.xor(1))//異或
println(0.inv())//反向
}
*/

//-----------字符---------------
/*
和java 不一樣 Kotlin 中的Char不能直接和數(shù)字進(jìn)行操作,
Char必須是單引號(hào)包好起來(lái)的'a','0'

字符字面值用單引號(hào)括起來(lái)。特殊字符可以用反斜杠轉(zhuǎn)義。

支持這幾個(gè):\t \b \n \r ' " \ $
編碼其他的字符要用Unicode轉(zhuǎn)義序列語(yǔ)法:\uFF00
可以顯示的把字符轉(zhuǎn)換為int 數(shù)字
/
/
fun main(args: Array<String>) {
fun Check(c:Char):Boolean{
//if(c==1)//錯(cuò)誤
if(c=='1')return true
return false
}

fun decimalDigtVlaue(c:Char):Int{
    return c.toInt()
}
println(decimalDigtVlaue('0'))// 轉(zhuǎn)換出來(lái)是字符的ASCII編碼

}
*/

//--------------布爾類(lèi)型--------------
/*
布爾用Boolean表示 true或false
內(nèi)置的布爾運(yùn)算為 || && !
*/

//---------------------數(shù)組-----------------------
/*
數(shù)組用Array實(shí)現(xiàn),并且還有一個(gè)size屬性及get和set方法,由于使用[]
重載了get和set 所以可以很方便的獲取或設(shè)置數(shù)組對(duì)應(yīng)位置的值
數(shù)組的創(chuàng)建兩種方式,
一:種使用函數(shù)arrayOf()
二:使用工廠函數(shù)

與java中不同的是,Kotlin中的數(shù)組是不型變的
除了類(lèi)Array還有ByteArray ShortArray IntArray
用來(lái)表示各個(gè)類(lèi)型的數(shù)組,省去裝箱操作,效率更高
而用法和Array一樣沒(méi)有區(qū)別

*/

/fun main(args: Array<String>) {
val a=arrayOf(1,2,3)
val b=Array(3){i->(i
2)}//i從0開(kāi)始并自增1 i為下標(biāo) lambda表達(dá)式的使用
println(a[1])
b[1]=100
println(b[1])

val c=IntArray(3)//默認(rèn)0
c[0]=2
//size 和count是一樣 返回?cái)?shù)組的元素個(gè)數(shù) sum則是返回?cái)?shù)組元素的總和
println(""+c.size+"  "+c.sum()+" "+c.count())

}
*/

//------------------字符串----------------------
/*
和java一樣,String 是可不變的,方括號(hào)[]語(yǔ)法可以很方便的獲取
字符串中的某個(gè)字符,也可以通過(guò)for循環(huán)
/
/
fun main(args: Array<String>) {
val str="aaassss"
println(str[5])
for(c in str) println(c)
//kotlin 支持三個(gè)引號(hào)括起來(lái)的字符串。支持多行字符串"""
val text="""
第一行
第二行
第三行
"""
println(text)

val text2="""

|第一行
|第二行
|第三行
""".trimMargin()//去掉前置空格
println(text2)
}*/

//---------------------字符串模板------------------
/*
字符串可以包含模板表達(dá)式
即一小段代碼可以求值包含在字符串中
以$開(kāi)頭
*/
fun main(args: Array<String>) {
val i=10;
val s="i=$i"
println(s)
//用{}括起來(lái)可以表示任意表達(dá)式求值
val s2="runoob"
val str="$s2 length is ${s.length}"
println(str)
//原生字符串和轉(zhuǎn)義字符串內(nèi)部支持模板,如果你需要在原生字符串中表示字面值$字符
//它不支持反斜杠的轉(zhuǎn)義,可以使用以下方式 $ 或以下的方式
val price="${'$'}9.99"
println(price)
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容