資料介紹
Kotlin語言在Android Studio中應用前景廣闊,本文是編者在應用開發中查找資料的總結,內容主要來自網絡,讀者可以作為手冊來查找并復制有用的內容到自己的應用當中。 Kotlin語言部分講述了Kotlin支持的基本數據類型的定義和字節數,集合類型:List、Map和Set類,可變長度和不可變長度集合類型的定義,結合類型的成員和方法,字符串類型詳解,類的定義,枚舉類、數據類和密封類。
Kotlin實戰(一)
Kotlin 基本數據類型、變量、常量。變量定義修飾符兩個: val、var。val表示該變量可以初始化一次,以后不能再賦值。var表示該變量可以隨時賦值。
一、簡介
Kotlin 是一個用于現代多平臺應用的靜態編程語言,由 JetBrains 開發。
Kotlin可以編譯成Java字節碼,也可以編譯成JavaScript,方便在沒有JVM的設備上運行。
Kotlin已正式成為Android官方支持開發語言(Google IO 2017宣布)。
分享關于kotlin的幾個網站
kotlin官方網站:https://kotlinlang.org/
kotlin官方網站(中文翻譯版):https://www.kotlincn.net/
kotlin在線工具網站(可執行kotlin代碼):https://try.kotlinlang.org/
二、Kotlin數據類型
2.1 kotlin的基本數值類型
包括Byte,Short,Int,Long,Float,Double等。與java有差別的是字符不屬于數值類型,而是一個獨立的數據類型。其內存大小則分別是Byte 8位,Short 16位,Int 32位,Long 64位,Float 32位,Double 64位,與Java基本沒有差別。
2.2字面常量
下面是所有類型的字面常量:
十進制:123
長整型以大寫的L結尾:123L
16進制以0x開頭:0x0F
2進制以0b開頭:0b00001011
***注意:kotlin不支持8進制
kotlin同時也支持傳統符號表示的浮點數值:
Double默認寫法:123.5,123.5e10
Float使用f或者F后綴:123.5f
可以使用下劃線使數字常量更易讀:
val oneMillion = 1_000_000
val creditCarNumber = 1234_5678_9012_3456L
val socialSecurityNumber = 999_99_9999L
val hexBytes = 0xFF_EC_DE_5E
val bytes = ob11010000_010100_11100
2.3比較兩個數字
kotlin中沒有基礎數據類型,只有封裝的數字類型,你每定義的一個變量,kotlin幫你封裝了一個對象。這樣確保了不會出現空指針。數字類型也一樣。所有在比較兩個數字的時候,就有比較數據大小和比較兩個對象是否相同的區別了。
* === :表示比較對象地址。
*==:表示比較兩個值的大小。
2.4類型轉換
由于不同的表示方式,較小類型并不是較大類型的子類型,較小的類型不能隱式的轉換為較大的類型。這意味著在不進行顯示轉換的情況我們不能把byte型值賦給一個int變量。
val b: Byte = 1 //ok ,字面值是靜態檢測的
val i : Int = b //錯誤
//正確做法
val i :Int = b.toInt()
由此引出的各種數據類型轉換方法。
toByte() : Byte
toShort():
toInt():
toLong():
toFloat():
toDouble():
toChar():
但是有些情況下也是可以使用自動類型轉換的,前提是可以根據上下文環境推斷出正確的數據類型而且數學操作符會做相應的重載。例如:
val 1 = 1L + 3 //Long + Int =》 Long
2.5位操作符
對于Int和Long類型,還有一系列位操作符可以使用,分別是:
shl(bits) - 左移位(Java 《《)
shr(bits) -右移位(Java 》》)
ushr(bits) -無符號右移位(Java 》》》)
and(bits) -與
or(bits) -或
xor(bits) -異或
inv() -反向
2.6字符
和Java不同的是,kotlin 中Char不能和數字操作,Char必須是是單引號‘包含起來的,比如普通字符’0‘,’a‘。
fun check(c : Char) {
if (c == 1) { //錯誤 類型不兼容
}
}
字符字面值用單引號括起來:’1‘。特殊字符可以用反斜杠轉義。
支持以下轉義序列:\t,\b,\n,\r,\’,\“,\\和\$。編碼其他字符要用Unicode轉義序列語法:”\uFF00“。
當需要可空引用時,像數字,字符會被裝箱。裝箱操作不會保留同一性。
2.7布爾
布爾用Boolean類型表示,它有兩個值:true和false。
若需要可空引用會被裝箱。
內置的布爾運算有:
|| -短路邏輯或
&& - 短路邏輯與
! - 短路邏輯非
2.8 數組
數組用類Array實現,并且還有一個size屬性及get和set方法。
由于使用[]重載了get和set方法。所以我們可以通過下標很方便的獲取或者設置數組對應位置的值。
數組的創建兩種方式:一種是使用函數arrayOf();另外一種是使用工廠函數。如下所示我們分別是兩種方式創建了兩個數組:
fun main(args: Array《String》){
val a=arrayOf(1,2,3) //定義數組{1,2,3}
val b=Array(3,{i-》2*i}) //定義數組{0,2,4}
println(a[0]) //輸出 1
println(b[0]) //輸出 0
}
注意:[] 運算符代表調用成員函數get()和set()。
注意:與Java不同的是,kotlin中數組是不型變的。(invariant)。
除此之外還有 ByteArray,ShortArray,IntArray,用來表示各個類型的數組,省去了裝箱操作,因此效率更高,其用法同Array一樣。
2.9字符串
和Java一樣,String是不可變的。方括號[]語法可以很方便的獲取字符串中的某個字符,也可以通過for循環來遍歷:
fun main(args: Array《String》){
val str=”asdfghjkl”
for(c in str){
print(c+”\t”)
}
}
kotlin支持三個引號‘’‘ ’‘’括起來的字符串,支持多行字符串比如:
fun main(args:Array《String》){
val str=”””
白日依山近,
黃河入海流。
欲窮千里目,
更上一層樓。
“””
print(str)
}
當然也可以通過.trimMargin()刪除多余的空白。
- HK32MCU應用筆記(五)| 關于應用HK32F030延時效率問題 應用筆記
- github上的pytorch學習資料詳細說明 6次下載
- Xilinx的時序設計與約束資料詳細說明 34次下載
- 時序分析的優化策略詳細說明 17次下載
- 時序分析的優化策略詳細說明 19次下載
- Python的知識點總結詳細說明 14次下載
- Android的歷史版本詳細說明 0次下載
- 如何使用Python繪制PDF文件教程詳細說明 12次下載
- AD20的6層兩片DDR高速板學習筆記詳細說明 0次下載
- 西門子PLC的數字指令教程詳細說明 32次下載
- 西門子PLC位指令的教程詳細說明 24次下載
- Java Script的編碼規范詳細說明 7次下載
- 無線路由器密碼破解Beini破解wpa實戰教程詳細說明 13次下載
- NET經常使用的DbHelperSQL詳細說明 6次下載
- Matlab圖形繪制經典案例詳細說明 7次下載
- DESAT外圍電路設計的應用筆記 9160次閱讀
- 由Java改為 Kotlin過程中遇到的坑 680次閱讀
- AN-621: AD9832/AD9835的編程 1227次閱讀
- MAX32570非接觸式PCD應用筆記 1002次閱讀
- 重新分配FlexRAM的方法 1528次閱讀
- PIC系列單片機程序設計基礎知識詳細說明 4303次閱讀
- C語言和C++的特點與用法詳細說明 4216次閱讀
- FPGA的入門基礎知識詳細說明 9211次閱讀
- 使用AT89S51單片機制作紅外遙控器的資料和源代碼詳細說明 5863次閱讀
- 常用穩壓二極管的參數表格詳細說明 1.3w次閱讀
- 電氣電纜的最全常用手冊詳細說明 8632次閱讀
- 硬件工程師必備的113條硬件應用筆記 7048次閱讀
- 接收卡升級的詳細說明概述圖文詳解 2.3w次閱讀
- 基于AD9854產生MSK調制信號詳細說明 4727次閱讀
- CAD實用筆記 6496次閱讀
下載排行
本周
- 1XL4015+LM358恒壓恒流電路圖
- 0.38 MB | 137次下載 | 1 積分
- 2PCB布線和布局電路設計規則
- 0.40 MB | 4次下載 | 免費
- 3TPS6287B25降壓轉換器評估模塊
- 3.46MB | 1次下載 | 免費
- 4INA226EVM用戶指南
- 4.7MB | 1次下載 | 免費
- 5INA226EVM修訂版A模型用戶指南和軟件教程
- 2.28MB | 1次下載 | 免費
- 6Altium Designer印刷電路板設計與制作PDF電子書免費下載
- 14.11 MB | 0次下載 | 3 積分
- 7DLPC3470和DLPC3478軟件編程人員指南
- 1.68MB | 次下載 | 免費
- 8TPS1213-Q1智能高側驅動器評估模塊
- 1.63MB | 次下載 | 免費
本月
- 1XL4015+LM358恒壓恒流電路圖
- 0.38 MB | 137次下載 | 1 積分
- 2新概念模擬電路第四冊信號處理電路電子書免費下載
- 10.69 MB | 60次下載 | 免費
- 3800VA純正弦波逆變器的參考設計
- 2.96MB | 34次下載 | 免費
- 4純電動汽?的主要部件及?作原理
- 5.76 MB | 15次下載 | 5 積分
- 5JESD79-5C_v1.30-2024 內存技術規范
- 2.71 MB | 10次下載 | 免費
- 6elmo直線電機驅動調試細則
- 4.76 MB | 9次下載 | 6 積分
- 7明偉電源模塊RSP-3000圖紙
- 0.30 MB | 8次下載 | 免費
- 8使用BQ76PL102系列電量計進行BQ78PL114的快速入門指南
- 4.04MB | 7次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935115次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191366次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183329次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73805次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65985次下載 | 10 積分
評論
查看更多