读书笔记第二章

238 阅读2分钟

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)
}