- kotlin - HelloWorld
fun main(args: Array<String>) {
println("hello world")
}
- kotlin - 基本數(shù)據(jù)類型:
var 定義變量
fun main(args: Array<String>) {
//定義Boolean類型變量
var b:Boolean = false
var byte:Byte = 10
var int:Int = 20
var long:Long = 40
var char:Char = 'a'
var double:Double = 1.1234567
var float:Float = 1.1234567f
var short:Short = 10
println(b)
}
- kotlin - 與Java數(shù)據(jù)類型的對比:
hashCode()
fun main(args: Array<String>) {
var a:Int = 10
//基本數(shù)據(jù)類型
var b:Int = a+10
//調(diào)用hashcode
val hashCode:Int = a.hashCode()
println(hashCode)
}
- kotlin - 基本數(shù)據(jù)類型的取值范圍:
MAX_VALUE MIN_VALUE
fun main(args: Array<String>) {
//Short類型取值范圍
var maxShort:Short = Short.MAX_VALUE
var minShort:Short = Short.MIN_VALUE
var maxByte:Byte = Byte.MAX_VALUE
var minByte:Byte = Byte.MIN_VALUE
var maxInt:Int = Int.MAX_VALUE
var minInt:Int = Int.MIN_VALUE
var maxLong:Long = Long.MAX_VALUE
var minLong:Long = Long.MIN_VALUE
var maxFloat:Float = Float.MAX_VALUE
var minFloat:Float = -Float.MAX_VALUE//最小值
var maxDouble:Double = Double.MAX_VALUE
var minDouble:Double = -Double.MAX_VALUE//最小值
}
- kotlin - 調(diào)用Java:
BigDecimal類調(diào)用
fun main(args: Array<String>) {
//1.123456789123456789
//存錢
var money:Double = 1.123456789123456789
//取錢
println(money)
//銀行存錢
var bigDe:BigDecimal = BigDecimal("1.123456789123456789")//省略new關(guān)鍵字
//取錢
println(bigDe)
}
- kotlin - 智能類型推斷和類型轉(zhuǎn)換:
var b = 10
fun main(args: Array<String>) {
var a: Int = 10
/*---------------------------- kotlin智能類型推斷 ----------------------------*/
//類型安全的語言:類型一但確定,不再改變了
//kotlin編譯器推斷出Int類型
var b = 10
// var g
// var c:Byte = 10
var e = 10L//long
// b = 20
// b = "a"
var c = "張三"
var d = 'a'
/*---------------------------- 類型轉(zhuǎn)換 ----------------------------*/
// 10 "10"
/*---------------------------- String和int類型轉(zhuǎn)換 ----------------------------*/
//to轉(zhuǎn)換基本數(shù)據(jù)類型
var m = 10
var s = "10"
println(s.toInt())
s.toByte()
/*---------------------------- int類型和long類型轉(zhuǎn)換 ----------------------------*/
//不同的數(shù)據(jù)類型不能相互賦值
//kotlin數(shù)據(jù)類型可以通過to方法進行相互轉(zhuǎn)換
var u = 10
var v = 10L
v = u.toLong()//Int賦值給Long類型
u = v.toInt()//Long賦值給Int類型
//kotlin java js
//最嚴(yán)格的類型檢查 只能小的賦值給大的 最寬松
}
- kotlin - 可變變量和不可變變量:
var val
/**
* 項目開發(fā)中盡量使用val 實在不能使用val再使用var
*/
//可以通過反射修改里面的值
const val b:Int = 20
fun main(args: Array<String>) {
//可變變量
var a:Int = 10
a = 20
//不可變變量
val d = 20
// b = 30
}
- kotlin - 字符串:
“廣東省” “““廣東省””” .trimIndent()
/**
* 廣東省
* 深圳市
* 寶安區(qū)
*/
//模板性
fun main(args: Array<String>) {
/*---------------------------- 普通字符串 ----------------------------*/
// val place1 = "廣東省深圳市寶安區(qū)"
//// println(place1)
// //換行
// val place2 = "廣東省\n深圳市\(zhòng)n寶安區(qū)"
//// println(place2)
// val place3 = "廣東省" +
// "深圳市" +
// "寶安區(qū)"
//// println(place3)
// //怎樣寫怎樣輸出?
/*---------------------------- 原樣輸出字符串 ----------------------------*/
val place4 = """
廣東省
深圳市
寶安區(qū)
""".trimIndent()
println(place4)
}
- kotlin - 字符串刪除空格:
trim()、trimMargin()
fun main(args: Array<String>) {
/*---------------------------- 普通字符串刪除空格 ----------------------------*/
val str = " 張三 "
val newStr = str.trim()
// println(newStr)
/*---------------------------- 原樣輸出字符串 ----------------------------*/
val str2 = """
/張三
/李四
/王五
""".trimMargin("/")
println(str2)
}
-
kotlin - 字符串的比較:
== 、 equals 、 ===fun main(args: Array<String>) { val str1 = "abc" val str2 = String(charArrayOf('a','b','c')) //equals 比較值 true println(str1.equals(str2)) //== 比較的也是值 println(str1 == str2) //=== 比較地址值 false println(str1 === str2) } -
kotlin - 字符串切割:
split(a,b)多條件切割fun main(args: Array<String>) { val str = "張三.李四-王五" //多條件切割 val result = str.split(".","-") println(result) } -
kotlin - 字符串截?。?code>substring() 以及重載方法
fun main(args: Array<String>) { val path = "/Users/yole/kotlin-book/chapter.adoc" //獲取前6個字符 // println(path.substring(0, 6)) println(path.substring(0..5))//0到5 //把第一個r之前的字符截取 println(path.substringBefore("r")) //把最后一個r之前的字符截取 println(path.substringBeforeLast("r")) //把第一個r之后的字符截取 println(path.substringAfter("r")) //把最后一個r之后的字符截取 println(path.substringAfterLast("r")) } -
kotlin - 二元元組:
pair 、 triplefun main(args: Array<String>) { //定義二元元組 姓名 年紀(jì) // val pair = Pair<String,Int>("張三",20) val pair = "張三" to 20 // println(pair.first) // println(pair.second) //三元元組 val triple = Triple<String,Int,String>("李四",20,"15456678") println(triple.first) println(triple.second) println(triple.third) // 1/0 } -
kotlin - 空值處理:
?. ? !! ?:/** * val str:String 非空類型 不能賦值為null * val str: String? 可空類型 可以賦值為null * * 空安全調(diào)用符:?. * 空值處理的運算符 * 可空類型 Int? * 關(guān)閉空檢查 a!! * 空安全調(diào)用符 a?.toInt * Elvis操作符 ?: */ //swift fun main(args: Array<String>) { //10 "10" 可空類型 val str: String? = null //轉(zhuǎn)換為Int類型 //告訴編譯器 不要檢查了 我一定不為空 還是可能為空 不建議使用 // str!!.toInt() //空安全調(diào)用符 返回的值其實就是可空類型 // str?.toInt() // Int? // if(str!=null){ // return str.toInt() // }else{ // return -1; // } // Int? val b:Int = str?.toInt()?:-1 // if(str!=null){ // return str.toInt() // }else{ // return -1 // } println(b) } -
kotlin - 人機交互:
readLine()fun main(args: Array<String>) { //輸出數(shù)據(jù) val a = 10 // println(a) //m+n var m:Int var n:Int //從控制臺輸入m和n m = readLine()?.toInt()?:-1 n = readLine()?.toInt()?:-1 println("m+n=" + (m + n)) } -
kotlin - 自定義函數(shù):
有無參數(shù)和返回值fun main(args: Array<String>) { // sayHello("張三") println(getLength("張三")) } //無參無返回值 fun sayHello(){//返回值 println("hello") } //有參無返回值 fun sayHello(name:String){ println("hello "+name) } //有參有返回值 fun getLength(name:String):Int{ return name.length } //無參有返回值 fun get():String{ return "hello" } -
kotlin - 頂層函數(shù)和嵌套函數(shù):
一等公民、獨立于對象單獨存在//函數(shù)式編程 函數(shù)式一等公民 函數(shù)可以獨立于對象單獨存在 //頂層函數(shù) fun main(args: Array<String>) { //嵌套函數(shù) fun sayHello(){ println("hello") } sayHello() } //頂層函數(shù) fun haha(){ } -
kotlin - 字符串模板:
${ place }fun main(args: Array<String>) { val result = createDiary("天安門") println(result) } //生成日記模板 fun createDiary(place:String):String{ // val result = "今天天氣晴朗,萬里無云,我們?nèi)?+place+"游玩,首先映入眼簾的是,"+place+place.length+"個鎦金大字" val result = "今天天氣晴朗,萬里無云,我們?nèi)?{sayHello1()} 游玩,首先映入眼簾的是,${place}${place.length}個鎦金大字" return result } fun sayHello1():String{ return "halleo" } -
kotlin - 條件控制語句if:
if語句有返回值,沒有三元運算符/** * kotlin的if語句有返回值的 java if語句是沒有返回值的 * switch when表達(dá)式 * kotlin一般都有返回值(函數(shù)式編程 閉包) */ fun main(args: Array<String>) { val a = 10 val b = 20 //找到a和b中最大值 val max = max(a, b)//Ctrl+Alt+L println(max) } //求最大值 //kotlin沒有三元運算符 fun max(a: Int, b: Int): Int { return if (a > b) { a } else { b } } //如果只有一行 可以去掉{} //fun max(a: Int, b: Int): Int { // if (a > b) // return a // else // return b //} //最終精簡 //fun max(a: Int, b: Int): Int { // return if (a > b) a else b //}