美文网首页我爱编程
Kotlin基础教程(一)

Kotlin基础教程(一)

作者: LAY_1912 | 来源:发表于2018-06-07 20:14 被阅读0次

很久没有对一段时间的工作学习进行总结,所以想就近一个月使用kotlin编程,进行简单的总结.首先,kotlin真的十分好用,在Android开发中,能体会到kotlin带来便捷和灵活性.java程序员能十分友好的过渡到kotlin.

下面我将主要介绍下Android中的使用.

### 1)引入kotlin ###

AS3.0很好的支持了kotlin,创建一个新的.kt文件,kotlin所依赖的库基本都会导进来;

module build.gradle 中

```

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions' 

compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" 

```

项目 build.gradle中

```

 dependencies {

        .....

        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

    }```

### 2)基本语法 ###

1) 基本类型

在.kt中 基本类型都类似于java中的包装类型,比如:Int,Long,String,Boolean...

需要注意的是,当没有被"?"申明时,这些对象是不可为null的,这也是kotlin能最大程度干掉NPE的所在之处吧;

2)定义函数

无返回值eg:

```

fun sum(a:Int ,b:Int){

 println("$a plus $b = ${a+b}")

}

or

fun sum(a:Int ,b:Int):Unit{

 println("$a plus $b = ${a+b}")

}

```

有返回值eg:

```

fun sum(a:Int ,b:Int):Int{

 return a+b

}

//注意的是,这里返回值是Int,所以不允许返回null,如果允许返回值为null,这样申明函数.

fun sum(a:Int ,b:Int):Int?{

 return null// 这里允许返回null

}

or 

fun sum(a:Int ,b:Int)=a+b

```

3) if,for,when,rang等表达式的使用

eg:

```

if语句

fun maxOf(a:Int,b:Int)=if(a>b) a else b

上述函数类似于java三目运算 ;

kotlin 在类型可推断时,可省略返回值类型的申明;

for语句

 val fruits = arrayOf("apple", "banana", "kiwi")

     for(fruit in fruits){

     println(fruit)

    }

or

fruits.forEach {println(it)} //当lamda表达式只有一个参数时,该参数可用it表示

when语句

 val fruits = arrayOf("apple", "banana", "kiwi")

        when {

            "orange" in items -> println("juicy")

            "apple" in items -> println("apple is fine too")

        }

or

fruits.forEach {

            when (it) {

                "apple", "banana" -> println("I love $it")

                else -> println("I don't love $it")

            }

        }

rang语句

val x=520;

if(x in 1..521){

    println("$x in range")

}

```

4)区间迭代

eg:

```

打印1,3,5;step为1时可省略step

for(x in 1..5 step 2){

println(x)

}

or

for(x in 5 downTo 1 step2){

println(x)

}

```

还有许多基本用法就不一一列出了,具体可以参考kotlin官方文档

### 3)创建类及实例 ###

1)与java不同的是,kotlin默认所有class是不可以被集成的,类要被继承,需要显性用 open 来修饰 class;

```

eg:

主构造无参

open class Foo{

}

Sub class :Foo(){

//Sub继承Foo,主构造没有参数时,在类申明时可以省略构造

主构造有参

open class Foo(p:String?){

    fun run1(){

        println("invoke run1 in Foo")

    }

    open fun run2(){

        println("invoke run2 in Foo")

    }

}

Sub(p:String?) class:Foo(p){

     override fun run2() {

        super.run2()

    }

    //此处并未重写父类方法

    fun run1(){

        println("invoke run1 in Sub")

    }

}

在kotlin中,创建新的对象,不需要new 关键字;

同样的,函数也需要 open 修饰才能被子类重写.

val foo=Foo("google Jang")

foo.run1().apply{run2()}

//打印:

invoke run1 in Foo

invoke run2 in Foo

```

时间有限,先写这些,下一篇将主要介绍lambda表达式以及扩展函数

相关文章

网友评论

    本文标题:Kotlin基础教程(一)

    本文链接:https://www.haomeiwen.com/subject/rtayattx.html