一、声明变量
声明使用val或者var
val a:String="hello"
var b:String="hello"
可以省略变量类型,自动推导。
var和val的区别
val的引用不可变,优先使用val
二、数据类型
1.数值型
Byte
=> 字节 => 8位
Short
=> 短整型 => 16位
Int
=> 整型 => 32位
Long
=> 长整型 => 64位
Float
=> 浮点型 => 32位
Double
2.Boolean
true
false
' || ' => 逻辑或(或者)
' && ' => 逻辑与(并且)
' ! ' => 逻辑非(取反)
3.字符型
char
4.字符串
String
语法糖
fun main(){ val a="hello" val b="world" print("$a+${a+b}") }
结果 hello+helloworld
5.数组
Array
6.Unit
7.可空
Int?
8.Any
最顶层类
三、判断
一般
val a=5 if (a== 2) { println("OK1") }else if (a==3){ println("OK2") } else{ rintln("OK3") }
当做表达式接收结果
var a=3 var b=2 var c= if(a>b) "ok1" else "ok2" //c="ok1"
可以在最后返回值
fun main() { var a = 3 var b = 2 var c = if (a > b) { println("a>b") "ok1" } else { println("a<b") "ok2" } println(c) }
区间
val a=3 var b=8 if(a in 2..b) print("在区间内")
不在区间内
if(a !in 2..b)
when
fun main() { print(f("d")) } fun f(str:String):String{ when (str) { "a" -> return "ok1" "b","c" -> return "ok2" else -> return "else" } }
四、控制
1.
var arr= arrayOf(1,2,3,4,5) for (i in arr){ println("$i + ${arr[i-1]}") }
2.
var arr= arrayOf(1,2,3,4,5) for (i in arr.indices){ println("$i + ${arr[i]}") }
3.
var arr= arrayOf(1,2,3,4,5) for ((i,v)in arr.withIndex()){ println("$i + $v") }
五、函数
可以不使用类,直接使用函数。像python dart
函数的返回类型,写在后面。
fun main() { println(sum(3,5)) } fun sum(x:Int,y:Int):Int{ return x+y; } //或者 fun sum(x:Int,y:Int) =x+y;
其他
1.包
包的路径和文件夹路径可以无关系
package com.abc