Kotlin学习之旅(一)——探索入门篇

    xiaoxiao2022-07-12  212

           怀着激动的心情开始了Kotlin自学的艰难之旅,早在2017年谷歌I/O大会上宣布Kotlin成为Android开发的官方头等支持语言,那时就想要学习一下,可是看了一些基本语法之后觉得Kotlin的写法很不顺手,命名跟java相比都是颠倒的,于是就放弃了。

            但是最近发现使用Kotlin的人越来越多,都说他的语法简洁、高效、快捷 等等。所以在科技这么迅速发展的时代不得不去学一下了,不然真的就要落伍了。正好最近可以抽出点时间学习学习,下面就将自己学习Kotlin的一点一滴记录在下面,每学一点就记录一点,在不断的积累中成长吧!希望能早日把自己所学的内容应用在实际项目上。

            学习的过程真的是非常艰难,处处碰壁,一步一个坑,遇到问题只好自己借助网络工具来解决了。

    1、类型的定义:

    Kotlin用var表示变量,val表示常量,相当于java里的final,一般情况尽量使用val。如果使用var一般都需要判空。

    val i = 1 //自动类型推导 val str : String = "kotlin" //也可以显式的指明类型 var value : String? = null//可变变量一般要注意使用安全操作符问号(?),使用时都要加上问号(?) val length = value?.length

    这里还有个小坑,如果没有加?传入了空参数时,kotlin会强制判空抛出异常的。

    只要是java语言有交互的参数,除非百分之百确定不为空,否则请务必都加上安全操作符?。 

    基本变量数组的声明:

    长整型数组:数组类型为LongArray,分配方法为longArrayOf; 浮点数组:数组类型为FloatArray,分配方法为floatArrayOf; 双精度数组:数组类型为DoubleArray,分配方法为doubleArrayOf; 布尔型数组:数组类型为BooleanArray,分配方法为booleanArrayOf; 字符数组:数组类型为CharArray,分配方法为charArrayOf; var long_array:LongArray = longArrayOf(1, 2, 3) var float_array:FloatArray = floatArrayOf(1.0f, 2.0f, 3.0f) var double_array:DoubleArray = doubleArrayOf(1.0, 2.0, 3.0) var boolean_array:BooleanArray = booleanArrayOf(true, false, true) var char_array:CharArray = charArrayOf('a', 'b', 'c')

    上面的数组不包括字符串数组,因为在Kotlin里不存在StringArray的数组类型,因为String不属于基本变量类型 。要想在Kotlin中声明字符串数组,得使用Array<String>,同时分配字符串数组的方法也相应变成了arrayOf,具体定义方法如下:

    定义一个字符串数组: val values:Array<String> = arrayOf("android","ios","java","kotlin","swift")

    【注意】

    1.在kotlin中==相当于java中的equal函数,===相当于java中的==。不过一般情况下==就够了。kotlin中没有基本类型,所有的如Int,Long等 都是对象。

    2.kotlin中没有三元操作符。可以用 if else,或者?:代替。

    java中:String a = result?"true":"false"

    kotlin中:val a = if (result) "true" else "false"         ?:表示先判断前面是否为空,为空的话就返回后面的

    java中:String b = (a==null)?a:"true"

    kotlin中:val b = a?:"true"

    2、方法用fun()来定义

    fun method(){}

    3、类的继承和实现直接使用“:”就可以了

    4、Kotlin每个句子的结尾都不需要加分号(;)

    5、Kotlin中的点击事件,while和for循环的写法

    var result = "" val values:Array<String> = arrayOf("android","ios","java","kotlin","swift") btn_1.setOnClickListener { for (i in values){ result += ",${i}" Log.e("btn_1","result=$result")//拼接在一起的字符串 Log.e("btn{i}","${i}")//数组中第i个值 Log.e("values.size","values.size="+values.size)//values数组的大小 } } btn_2.setOnClickListener { var j : Int = 0 while (j < values.size){ Log.e("values.get(i)","values["+j+"]="+values[j])//数组中下标为j的值 j++ } }

    6、控件的显示与隐藏在代码里的写法

    btn_test.visibility = View.VISIBLE//显示 btn_test.visibility = View.GONE//隐藏

    先写到这里,后面再一点点学习更新吧。

    最新回复(0)