參考內容
1. package
kotlin 的 包和 java 基本相似,但有點不一樣;
關鍵字: as
示例代碼
package cn.labelnet.demo.basic
import cn.labelnet.demo.students.Student
import cn.labelnet.demo.students.*
// import 可以使用 as 關鍵字 可以取別名, java 不可以
import cn.labelnet.demo.students.Teacher as Tea
// main 函數
fun main(args: Array<String>) {
val s = Student("kotlin", 2)
val t = Tea("Java", 20)
t.speak()
val p = Programer("LABELNET")
}
2. var & val
關鍵字 : var , 聲明可變化的屬性
關鍵字 : val , 聲明只讀屬性
示例代碼
/**
* val : 只可讀
* var : 可改變的
*/
fun main(args: Array<String>) {
val a = 1;
a = 2; // error
var b = 1;
b = 2; // right
}
3. 基本類型
3.1 kotlin 基本類型
數值類型
類型 | 位寬 |
---|---|
Double | 64 |
Float | 32 |
Long | 64 |
Int | 32 |
Short | 16 |
Byte | 8 |
字符
Char | 不可以當做數值使用 |
---|
布爾
Boolean | true/false |
---|
數組
Arrays | 不可變的 ,IntArrays, ByteArrays |
---|
字符串
String | 不可變的,元素 str[index] , 可以直接進行for循環元素 |
---|
3.2 可爲空的類型
基本寫法 : kotlin 基本類型? (C#中早已有此寫法)
示例代碼
val a : Int? = 1
// 參數a 可爲 null
fun sum(a: Int?, b: Int): Int {
if (a != null) {
return a + b
}
return b
}
// 返回可爲 null 的值
fun checkType(obj: Any): Int? {
if (obj is String) {
return 1
}
return null
}
4. 函數默認值
默認值寫法與 es6 和 python 中的寫法類似
示例代碼
// 函數默認值
fun add(a: Int = 1, b: Int): Int {
return a + b;
}
5. 字符串模板
屬性可以直接使用
$a
函數可以使用${funName}
示例代碼
println("a = $a,b=$b,c=$c,d=${add(1, 20)}")
6. 函數
關鍵字 : fun
示例代碼
- 函數名:sum
- 參數: a Int類型,b Int類型
- 返回值 Int類型
- 函數修飾符 fun
fun sum(a: Int , b: Int) : Int{
//方法內部
return a + b
}
7. 註釋
和java一樣 ,行註釋與塊註釋
示例代碼
// 單行註釋
/* 這是塊註釋
這是塊註釋 */
8.代碼風格
和 java 一樣
- 使用駱駝命名法(在命名中避免下劃線)
- 類型名稱首字母大寫
- 方法和屬性首字母小寫
- public 方法要寫說明文檔,這樣它就可以出現在 Kotllin Doc 中
- 等
9. Unit
關鍵字 : Unit
如果函數返回值爲 Unit ,應該省略
fun foo() { // ": Unit"被省略了
}
10. 實例
求 和 ?
實例代碼
package cn.labelnet.demo.basic
// main
fun main(args: Array<String>) {
sumPrint(1, 2)
}
// method : sumPrint
fun sumPrint(a: Int, b: Int) {
println("a+b=${a + b}")
}
代碼地址: