Kotlin与Android的奇妙之旅——基本语法(二)

世上无难事只怕有心人

函数的使用

 private fun test() {
        Log.e("测试","测试")
    }

在Kotin中进行创建方法也非常地简单,使用Android Studio自带的快捷键就可以生成,或者直接打出fun三个字母就可以生成提示
这里写图片描述

这里写图片描述

这里写图片描述

从这里可以看出,Kotlin语法非常的简洁,基本上没有多余的东西,甚至连Java中必要的分号也没有,只保留了大括号表示一行代码的结束,在这里我只是做了简单的函数代码的演示,至于构造函数和重载函数等结构上基本上与java相同,比如说重载同样是方法名相同,参数不同

常量和变量

在Kotlin中,使用val来声明一个常量(只能读,不能修改),而使用var来声明一个变量,比较神奇的是Kotlin中,并不需要指定变量的类型,代码会自动根据数据的类型,自行判断,而不像java代码中,需要指定一个变量的类型,才能对这个变量进行声明,这从另一个方面避免了类型转换异常,具体的代码如下:

 private fun test() {
        val i = 1
        var m = 199
        var s = "你好"
    }

从下面的截图中可以看出,当我声明了一个int类型的变量之后,这个变量的类型就确定了,如果此时我再给他附上一个字符串类型的数据的时候,就会直接报错,从而使程序无法进行下去,除非我给他一个int类型的数据

这里写图片描述
这里写图片描述

注释

在Kotlin中注释与java是一致的,这个在此不再多说

   private fun test() {
//        var m = 199
//        m = 200
    }


    /**
     * 跳转的方法
     */
    private fun initClick() {
/*        button.setOnClickListener {
            val intent1 = intent
            intent1.setClass(this,TwoActivity::class.java)
            intent1.putExtra("DATA","今天天气不错")
            startActivity(intent1)
        }*/
    }

这里写图片描述

字符串模板

//字符串模板的用法  
fun stringTempl(args: Array<String>) {  
    if(args.size > 0)  
        println("args[0] = ${args[0]}")  
}  

//main方法是整个程序的入口  
fun main(args: Array<String>){  
    var arr = arrayOf("hello", "world")  
    stringTempl(arr)  
}

这里写图片描述

条件表达式

在java中,我们的条件表达式一般是这样写的

int m = 5;
        if (m>1){
            Log.d("TwoActivity", "m:" + m);
        }else if (m<10){
            Log.d("TwoActivity", "m:" + m);
        }else {
            Log.d("TwoActivity", "haha");
        }

或者使用三元运算符

Log.d("TwoActivity", (m > 5 ? "yes" : "no"));

但是现在Kotlin出现了,你可以这样写

//简写的条件表达式  
fun max2(a: Int, b: Int) = if(a > b) a else b

可空类型

fun nullableTest() {  
    //在变量类型后面加上问号,代表该变量是可空变量  
    var name: String? = "zhangsan"  
    name = null //可以将null赋值给name变量  
    var person: String = "tom"  
//    person = null  //这句代码会报错,不可以将null赋值给一个不可空变量  
}
/*  
函数返回值为Int?,表示返回值可为空  
当参数为空或者为""时,则返回null,否则使用Java中的字符串转整型的方法  
这里也体现了kotlin代码和Java代码无缝集成  
 */  
fun parseInt(s: String): Int? {  
    if(s == null || s == "")  
        return null;  
    return Integer.parseInt(s);  
}

类型检查和自动类型转换

Kotlin中使用is运算符来检查数据类型和做类型转换,如下代码所示:

/*  
当函数参数为字符串类型时,就返回字符串的长度,否则返回空  
 */  
fun getStringLength(n: Any): Int? {  
    if(n is String)  
        return n.length //这里会自动将n转化为字符串类型  
    return null  
} 

for循环和while循环

private fun forFun() {
        var arr = arrayOf(1,5,6,8,10)
        //通过索引进行循环
        for (i in arr.indices) {
            println(arr[i])
        }

        for(num in arr) { //直接使用数组中的对象循环  
            println(num)
        }
    }

打印结果
这里写图片描述

While循环与java的基本上相同

//while循环的测试代码  
fun testWhile() {  
    var i = 0;  
    while(i < 10) {  
        print(" " + i)  
        i++  
    }  
}  

when表达式

when表达式就类似于Java中的switch表达式,如下代码所示:

private fun whenFun(m: Any) {
        when (m) {
            is String -> {
                println("String")
            }
            is Int -> {
                println("Int")
            }
            is Boolean -> {
                println("Boolean")
            }
        }
    }

范围

检查一个数字是否在一个范围内:

 if (x in 1..y-1)
        print("OK")

检查一个数字是否不再一个范围内

    if (x !in 0..array.lastIndex)
        print("Out")

遍历一个范围

   for (x in 1..5)
        print(x)

集合

遍历集合:

    for (name in names)
        print(name)  

用 “in” 检查集合中是否包含某一个变量

    if (text in names)
        print("Yes")  

使用lambda表达式去过滤和映射集合

    names
        .filter { it.startsWith("A") }
        .sortedBy { it }
        .map { it.toUpperCase() }
        .forEach{ print(it) }

下一篇>>Kotlin与Android的奇妙之旅——基本语法(三)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值