参考内容
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}")
}
代码地址: