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

       怀着激动的心情开始了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//隐藏

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

发布了92 篇原创文章 · 获赞 38 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/u013184970/article/details/90482148