一次Kotlin体验之旅
in Android with 6 comments
Read: 2,456

一次Kotlin体验之旅

in Android with 6 comments

今天凌晨1点,今天2017 google io开幕,由于时间差的原因,所以我们要看直播必须等到凌晨1点,- -#

题外

今年的google新品少,但是精彩多,大会时间2017.05.17-2017.05.19,如果你想了解大会的相关情况,可以点击此处的传送门,今年的主题围绕着:Android, Chrome, Assistant, VR, Machine Learning,进行的技术分享

google在创新上一直很超前,所以在开场就以一个华丽,创新的方式开场,开场动画,可以点击传送门,最后由气泡组成的google io标志,或许气泡代表着世界各地的意思吧

在其次就是google CEO 桑达尔·皮查伊 开场,其次就是依次展开的google io技术分享

下面分享一组google io现场的图片:









正文

额,题外话有点多,主要还是对这次io大会的激动

在这次io大会中,google推出Kotlin,并且声称kotlin将作为android的开发语言

于是满怀激动的心情,自己去学习了下kotlin,以下就是我在学习中的收获与感想

当我第一次写起kotlin的时候,觉得有些不适应,但是渐渐的写起来,我居然发现了js , databinding的影子,当时特别的惊讶,于是我就去github查找了下kotlin的组成成分,哇,之所以有它们的影子原来与组成成分有关

不过,关于kotlin,很多人有不同看法,有人说可以替代,有人说与java互补,有人说不可能将项目完全迁移

很多人的看法,其实就和最近google新研发的os一样:Fuchsia,备受期待与争议

不过新东西就像一个新生儿,有着巨大的潜力,也许只是时间的差异的原因吧,随着时间的推出,我想它们应该就会在互联网中脱颖而出的

说起Kotlin,个人觉得就是函数驱动式开发,代码写起来比较简洁,舒服,简单的看以下自己渣渣的代码吧,不过还是舒服

package com.monsterlin.kotlin

/**
 * author : monsterLin
 * email : monster941025@gmail.com
 * date : 2017/5/18
 * desc : Kotlin
 */

fun main(args: Array<String>) {
    println("hello world ")
    println(sum(5, 6))
    println(sum1(3, 5))
    printSum(3, 2)


    /**
     * 有点js的感觉,定义局部变量统一使用val声明
     */
    val a: Int = 1
    val b = 2
    var c: Int = 3

    println(a + b + c)


    val d = "this is a string sentence"
    println(d)

    println(maxOf(3, 4))
    println(maxOf1(5, 4))

    printProduct("6", "7")
    printProduct("a", "7")
    printProduct("a", "b")

}

/**
 * 格式:fun 关键字 (变量:类型) : 返回类型(void Int ...)
 */
fun sum(a: Int, b: Int): Int {
    return a + b
}

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


fun printSum(a: Int, b: Int): Unit {
    println("com.monsterlin.kotlin.sum of $a and $b is ${a + b}")
}


fun maxOf(a: Int, b: Int): Int {
    if (a > b) {
        return a
    } else {
        return b
    }
}


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


/**
 * Using nullable values and checking for null
 * A reference must be explicitly marked as nullable when null value is possible.
 *
 * 在使用的时候一定要检查是否为null,如果为null的话一定要给予一个确定的值
 */
fun parseInt(str: String): Int? {
    return str.toIntOrNull()
}

fun printProduct(arg1: String, arg2: String) {
    val x = parseInt(arg1)
    val y = parseInt(arg2)


    if (x != null && y != null) {
        println(x * y)
    } else {
        println("either '$arg1' or '$arg2' is not a number")
    }
}


fun getStringLength(obj: Any): Int ?{
    if (obj is String ){
        //obj 在该条件下自动转换为string
        return obj.length
    }

    // 在离开类型检测分支后,`obj` 仍然是 `Any` 类型
    return null
}

写起来很舒服,不过不知道真正在项目中,也许会遇到很多坑吧,据我了解,github很久前就有kotlin这个项目了,也许当时并不是很重要,今天因为google的分享,导致开发者纷纷去学习了kotlin

关于这篇文章,就不多去介绍kotlin的用法了,如果想去学习的话可以移步到文章底部,我在这里分享了今天收藏的资料,还请各位看官笑纳,?

互联网职业是一个与时俱进的职业,如果你不去努力,奋进,你必然会被互联网所侵蚀掉的,技术的进步不是一天两天的,而是随着日积月累的沉淀的,所以不管每时每刻,都要保持一个学习的心

今天的google除了kotlin的发布外,还有很多的东西,比如android studio 3的发布,官网组件化方案等等,今天我也在朋友圈,博客中发现了很多关于io的文章,就在这里分享以下吧:

Responses
  1. 膜拜大佬,可否友链一波?

    Reply
    1. @legend

      OK,你的博客链接我添加了,O(∩_∩)O哈哈~

      Reply
  2. 好文,拜读,以后常看学习。

    Reply
    1. @替天行盗

      多谢支持

      Reply
  3. 美帝,人类的希望/滑稽

    Reply
    1. ajcord
      @Waxxh

      这是留言……?

      Reply