那么,现在大家开发Android的话一般来说都是直接用Java,这个没错吧(高手除外)。嗯,那么用力那么久的Java,不知道大家是否有想过Java的不足,已经很多可以优化的地方呢。当然,新修订的版本中也逐渐覆盖以往的不足,但是Android开发者们还没来得及用上它。所以这也使得Kotlin这样的语言可以有用武之地,可以让开发者们在旧的开发环境中使用新的特性。

嗯,然后我想说的是其实我也接触这门语言不是很久,今天就写一个入门级的博文吧,至少能让大家可以在Android Studio中尝试用Kotlin去开发是吧。

如何在Android studio使用Kotlin开发

(之前我第一次接触的时候看了很多博文,其实现在的配置完全不用像以前那么麻烦,其实就很简单的3个步骤)

1.在IDE plugins中下载Kotlin插件

打开你的Android studio 在设置中打开plugins,然后在里面搜索Kotlin,点击安装,之后安装后重启。

2.创建、转换Kotlin文件

然后就是新建一个工程,然后你可以右键试试,看看是不是多出了2个选项。如图。

然后定位到MainActivity,在菜单栏选择“Code”,选择“Convert Java File to Kotlin File”,你会看到你的MainAvtivity变成了Kotlin文件,这个时候其实你去编译的话是有问题的。看第三步。

3.配置Kotlin(其实是全自动)

然后由于你是第一次使用Kotlin,Studio会提示要你配置Kotlin的,点击配置即可,其实啥都不用选,直接点“ok”。到这里你就配置完成了,然后可以试试编译运行了。

尝试使用Kotlin编写代码

数据类型定义

数据模型在开发中绝对是不可避免的,以往都会定义很多变量,然后添加get(),set()方法。如果现在使用Kotlin开发,你可以这么定义。

/**
* Created by Blin on 2016/10/20.
*/ data class People(
var id: Long,
var name: String,
var weight: Double,
var height: Double
)

空类型是安全的

以往我们在使用数据的时候最多的就是

if(a != null){
...

那么在Kotlin中其实完全么有必要这么写了,可以看一下下面代码的顺序思路和注释。

//        这是不允许的,People不能为null
// var people: People = null
// 以下是正确的声明
var people: People? = null
// 不可以直接调用people,因为有可能people是null
// people.id
// 如果people有可能为null,则必须先用如下的形式判断
people?.id
// 当然,如果按照java的习惯,先判断不为null了,那也是可以直接使用的
if(people !=null) people.id
// 如果能该变量一定不为null,可以使用2个感叹号表示,但是如果为null,那会抛出异常
// people!!.id

可以看出,在上面声明变量的时候不能直接生命为null,必须在等号前面加一个? 表示其实people是可以为null的。然后就是不能直接调用方法或者引用变量,必须在引用之前加?询问,当然如果能保证当前变量一定不为null,那可以直接用!!表示然后调用。如果在if()中判断了不为null,那么是可以直接调用的。

可扩展函数

刚才上面我们创建了一个People类,如果我想要给该类添加一个方法,可以这么做

fun People.toast(context: Context,message: CharSequence){
Toast.makeText(context,message,Toast.LENGTH_SHORT).show()
}

然后想调用可以这么调用

mPeople.toast(mContext,"其实我是来测试的")

Lambdas

这个函数其实java8也支持了,当然之前大家是通过第三方依赖来支持的。
我这边找到那个默认TextView,然后添加点击事件

tv = findViewById(R.id.text) as TextView?
tv?.setOnClickListener { mPeople.toast(mContext,"其实我是来测试的") }

然后你点击那个“holleWord” 就可以显示Toast了。

kotlin正式由Goole公布为Android的最新开发语言的更多相关文章

  1. kotlin, 一种新的android平台一级开发语言

    最近看到一则科技新闻, 大致内容是google将kotlin语言作为android应用开发的一级语言, 与java并驾齐驱, 这是一个开发界的大事件大新闻, 连google的亲儿子go语言也没有这种待 ...

  2. 如何看待 Kotlin 成为 Android 官方支持开发语言?

    Google IO 2017宣布了 Kotlin 会成为 Android 官方开发语言.一时间朋友圈和Android圈被各种刷屏.当然我也顺势而为发布了一篇的文章<为什么我要改用Kotlin&g ...

  3. 如何看待 Kotlin 成为 Android 官方支持开发语言

    Google IO 2017宣布了 Kotlin 会成为 Android 官方开发语言.一时间朋友圈和Android圈被各种刷屏.当然我也顺势而为发布了一篇的文章<为什么我要改用Kotlin&g ...

  4. 使用Android ADT最新开发工具后,新建项目出现appcompat v7 他是什么?

    做Android开发的朋友最近会发现,更新ADT至22.6.0版本之后,创建新的安装项目,会出现appcompat_v7的内容.并且是创建一个新的内容就会出现.这到底是怎么回事呢?原来appcompa ...

  5. 你还在把Java当成Android官方开发语言吗?Kotlin了解一下!

    导语:2017年Google IO大会宣布使用Kotlin作为Android的官方开发语言,相比较与典型的面相对象的JAVA语言,Kotlin作为一种新式的函数式编程语言,也有人称之为Android平 ...

  6. Kotlin 编程语言成为其 Android 应用程序开发人员的首选语言

    今年 5 月,谷歌在 I/O 大会上宣布,Kotlin 编程语言成为其 Android 应用程序开发人员的首选语言. Kotlin 是一种面向现代多平台应用程序的编程语言,成为谷歌开发 Android ...

  7. 弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言

    自从 2011 年发布以来,Kotlin 凭借强大的功能在开发者中的欢迎程度与日俱增.且在一年前,Google 宣布 Kotlin 正式成为 Android 官方开发语言,由此引发了从 Java 迁移 ...

  8. Android系统的体系结构、开发语言及源码结构

    整理自android系统体系结构 Android 是google公司针对手机开发的一个平台,并公布了其中大部分代码,其大部分应用程序都是用JAVA开发的,毕竟它是商业性的产品嘛,有所保留也是理所 当然 ...

  9. Android &Swift iOS开发:语言与框架对比

    转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_sour ...

随机推荐

  1. AI的分支学科

    AI 的分支学科 [References]AAI(Advanced Artificial Intelligence)

  2. SortedDictionary<TKey,TValue>正序与反序排序及Dicttionary相关

    SortedDictionary<TKey,TValue>能对字典排序 using System; using System.Collections.Generic; using Syst ...

  3. unity, 用脚本创建mesh

    创建一个空gameObject,添加Mesh Filter和Mesh Renderer两个component,再添加一个脚本createMeshScript: using UnityEngine;us ...

  4. unity5, import fbx注意事项

    一,模型尺寸. unity中是以米为单位,要想让3dmax中建的模型导入到unity中与unity自带的3d object尺寸一致,最直接的办法是将3dmax中的系统单位也设成米. 菜单->自定 ...

  5. html使用自我知识点总结

    1. 不要忘结束标签 <p>This is a paragraph <p>This is a paragraph 未来的HTML版本号不同意省略结束标签. 2. 没有内容的HT ...

  6. Unity3D动画面板编辑器状态属性对照表

    不推荐用AnimationUtility.SetEditorCurve问题很多,推荐AnimationCurve.AddKey.通过AnimationUtility.GetAllCurves可以获得编 ...

  7. [转]对P,NP和NPC问题的解释

    总结: 归约(或别的什么叫法):如果解决了问题A,就能用解决A的方法来解决问题B,那么我们说问题B可以归约为/到问题A,本文记为[B]<[A].其含义就是问题A的求解复杂度比问题B要高,比如说A ...

  8. zepto中的tap穿透

    有一个项目,浮层上是有点击的按钮,但是用tap就会穿透,触发浮层下的页面的点击事件.后来问同事和经过自己尝试,发现用click就可以解决这个问题.

  9. 跟着百度学PHP[12]-文件处理 文件 目录

    00x1 文件的属性 文件属性 <?php //-------------------------定义大小转换函数--------------- function changesize_dw($ ...

  10. 幸好会java

    转做android的可能性又往前增加了一分.