kotlin基础语法
- 定义变量(kotlin对象的属性),java与kotlin有啥不同?
1.位置不同 ,kotlin中数据类型要放在后面,并用冒号分隔。这个跟java相反。 2.kotlin中定义变量和常量都需要var关键字。3.数据类型的首字母,在kotlin中数据类型的首字母都是大写,记住喽。
- 定义函数(kotlin对象的行为)
函数的组成:函数头,参数,返回值
//下面是java定义的行为
int add(int m,int n)
{
return m+n;
}
void process(int m){
System.out.println(m*n);
}
///下面是kotlin定义的行为
//1.fun 关键字 2.void--》Unit ,什么都不返回可以省略Unit
fun add(m:Int,n:Int):Int{
return m+n;
}
fun add(m:Int):Unit{//
println(m*n);
}
基础数据类型
表示 Long 类型的值,在数值后面加 L 或 l,如 123L。 表示 Float类型的值,在数值后面加 F 或 f,如 123.lF。 表示十六进制 ,在数值前面加 Ox,如 OxlF。 表示二进制 ,在数值前面加 Ob,如 Obl00101 o
字符类型
在Kotlin预言中,字符类型用char描述,不过和java不同的是 char不能直接当做数字使用
void check(char c)
{
if(char == 97)
{
//可以编译通过
}
}
fun check(c:char) : Unint
{
if(char == 97)
{
//编译不通过 ,如果是char==‘a’ ,就可以编译通过了
}
}
数组
定义数组有多中方式 //使用arrayOf函数可以存储任意值的数组
val arr1 = arrayOf(1,2,3,'a') println(arr1[3])
//使用arrayOfNulls可以定义指定长度的空数组 var arry2 = arrayOfNulls(10);
//使用array类的构造器定义数组,其中第二个参数是指初始化每一个数组元素的值 var array3 = Array(10,i->{i*i}.toString()) println(arr3[3])
//使用intArrayOf函数定义数组 var arr4:IntArray = intArrayOf(20,30,40,50,60) println("arr4[2] = " + arr4[2])
字符串,有两种
// 普通的 var s1 = " hello \n world" var s2:String = "世界\n 你好"
//第二类字符串 var s3 = """ hello workd """
字符串模板
var i = 10
var star = ”i = $i“
包名 kotlin import提供了一个功能,就是给导入资源起一个外号,起了外号,原来的类名就不能用了
import a.b.myclass as niucha
控制流
条件语句
if语句代替了三元操作符
val max = if(a>b) a else b
if else 后面是一个代码块,最后一个表达式作为返回值 val min = if(a>b) { print("lllllll") a }else { priint("dddd") b }
- kotlin when 替代了switch,when 作为语句使用
var x = 1
when(x)
{
1 ->{
println("x==1")
printlin("hello world")
}
2 ->print("x==2")
else->{
print("x is neither 1 nor 2")
}
}
-
when 和 if 一样既可以作为语句使用,也可以作为表达式使用
-
when多个分支执行相同的代码 var x = 1 when(x){ 1,2->{ println("已经符合的条件") } }
-
when配合in关键字使用
when(x){ in 1..10 ->println("ddkdd") !in 30..60 ->println("hello world") else ->println("条件未知") }
- when 中的分支条件,不仅是分支常量,还可以是任意表达式
for 循环
for - iterator语法
for (item in collection) println(item)
ex:
var arr = intArrayOf(1,2,3,4)
for(i: Int in arr){
print(i)
}
- 使用索引枚举数组中的元素值
var arr = intArrayOf(2,34,444,444)
for(i in arr.indices){
println("arr[$i] = " + arr[i])
}
等价于
var arr = intArrayOf(2,34,444,444)
for((index,value) in arr.withIndex){
println("arr[$index] = " +value)
}