Kotlin 超车指南

本文详细介绍了Kotlin编程语言的下载方式、历史背景、语言特点、基础语法、面向对象特性、函数式编程以及在Android开发中的应用。通过实例演示和实战案例,展示了Kotlin的简洁、安全和高效,帮助读者快速掌握Kotlin并应用于实际项目。
摘要由CSDN通过智能技术生成

本文阅读大约半小时,写了很久,写到吐血....

前段时间在我的知识星球里统计了一下使用kotlin开发的人,感觉还不错,有十多个人在工作中已经正式使用了,我的知识星球《Hi Android》欢迎你的加入,我也应星友的需求写了一部分的kotlin基础知识,我也还在学习的过程中,为了帮助更多的星友认识到Kotlin for Android,所以花了点时间整理了这篇《Kotlin超车指南》,如果对你有所帮助,记得点个赞哦。

图片

Kotlin 是一个用于现代多平台应用的静态编程语言,由JetBrains开发。

Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。

Kotlin已正式成为Android官方支持开发语言。

推荐我的慕课网Android实战课程,助你暴力提升Android技术。
Android X/音视频开发/社交匹配算法/即时通信/语音识别/App优化/安全加固
https://coding.imooc.com/class/390.html

点击阅读原文直达课程详情

一.Kotlin下载

Kotlin支持命令行,Eclipse,Intellij IDEA,Android Studio 3.0+ 四种方式编程,那么我们学习Kotlin基础,肯定是优先前三者, 只有在开始Android开发的时候才会选择Android Studio

1.命令行

命令行安装的话需要去Github上下载工具包

https://github.com/JetBrains/kotlin/releases/tag/v1.3.61

选择 kotlin-compiler-xxx.zip 即可。

2.Eclipse安装

安装Eclipse之前需要安装JDK,这个没意见吧,然后去Eclipse官网下载:

https://www.eclipse.org/downloads/

图片

当然,就像ADT一样,如果想要Eclipse支持Kotlin开发,还需要下载Kotlin的插件

https://marketplace.eclipse.org/content/kotlin-plugin-eclipse

不过离线安装一般都是老版本的Eclipse了,在新版本中可以使用Eclipse商店进行在线安装,点击Eclispe菜单 - help - Eclipse Markerplace 搜索kotlin 就可以了。

图片

3.Intellij IDEA

图片

IDEA安装起来还是很方便的,点击链接:

https://www.jetbrains.com/idea/download/

下载自由版本即可。

4.Android Studio

图片

Android Studio 也是如此,安装即可。

https://developer.android.google.cn/studio

二.Kotlin历史

1.Kotlin名称由来

Kotlin 来源于一个岛屿的名字,全称是 Kotlin Island,是英语「科特林岛」之意。这个小岛属于俄罗斯。

2.Kotlin版本迭代

2010 年 :JetBrains 着手开发 Kotlin。

2011 年 7 月 :JetBrains 公开宣布 Kotlin。

2012 年 2 月 :JetBrains 在 Apache 2 许可证下开源了 Kotlin 的源码

2016 年 2 月 :JetBrains 发布了 Kotlin 1.0 版,算是比较稳定的正式版。

2017 年 :1.1.2(2017 年 6 月)。相比 Kotlin 1.0 版本时,和 Kotlin 有关的代码数目从 210 万行飞升到 1000 多万行。

此后还在不断的更新中…

3.Kotlin语言特点

简洁

简洁是Kotlin最主要的特点。Kotlin中数据类,类型推导,Lambda表达式和函数式编程都可以大大减少代码行数,使得代码更加简洁。

安全

kotlin和Java一样都是静态类型语言

Kotlin支持非空和可空类型,默认情况下Kotlin数据类型声明的变量都是不能接受空值(null)的。

类型推导

Kotlin编译器可以根据变量所在的上下文环境推导出它的数据类型

支持函数式编程

作为现代计算机语言Kotlin支持函数式编程,函数式编程优点:代码变得简洁,增加线程安全和便于测试。

支持面向对象

Kotlin支持函数式编程,但也不排除面向对象。

Java具有良好的互操作性

Kotlin和Java具有100%互操作性,Kotlin不需要任何转换成包装就可以调用Java对象。反之亦然,Kotlin完全可以使用现有的Java框架或库

免费开源

Kotlin源代码是开源免费的,它采用Apache2 许可证。

三.Kotlin基础

1.输出

1fun main(arg:Array<String>){
2    println("Hello Kotlin!")
3}

main函数是我们的主程序入口,在控制台输出Hello Kotlin使用了println方法。

2.输入

有输出就有输入,不过输入是从外部传递的

1fun main(arg:Array<String>){
2    println("请输入...")
3    var a = readLine()
4    println("你输入的内容是 $a")
5}

3.变量与常量

1fun main(arg:Array<String>){
2    var name = "张三"
3    name = "李四"
4    println(name)
5
6    val age = 18
7    println(age)
8}

我们用var代表变量,即可变的量,用val声明常量,即不可变的量

4.数据类型

数据类型和Java是类似的

Byte Short String Int Long Float Double

5.类型推导

类型推导也是kotlin的一个特色,我们来看代码

1fun main(arg:Array<String>){
2    var name:String
3    var age = 19
4}

如果没有值就无法类型推导,则需要声明数据类型,如果有值,则可智能推导类型

6.函数

我们先来看下一段示例代码

1//输出
2fun print(text:String){
3    println(text)
4}
5
6//加法
7fun add(a:Int,b:Int):Int{
8    return a+b
9}

首先是我们的输出函数,实际上所有的函数都有返回值的,但是有些不需要返回值,所有返回了一个Unit类型,也就是我们理解的无返回值,而加法两数相加之后需要把结果返回回去,则有了Int的返回值类型。

a.参数默认值

有时候碰到一些封装的场景,有对函数值统一要求的时候,可以这样处理

1fun main(arg:Array<String>){
2    println(add(1,2))
3    println(add(b = 2))
4}
5
6//参数默认值
7fun add(a:Int = 5,b:Int):Int{
8    return a+b
9}

我给a默认赋值了一个5,如果使用默认值,则需要指定b = 2,如果不用此默认值,则直接传值即可,比重载好用。

7.字符串模板

在Java中要拼接字符串的话,需要很多的+号,但是有了字符串模板,一切都会变得简洁起来了

1fun main(arg:Array<String>){
2    val name = "张三"
3    val address = "超市"
4    val apple = 10
5    val banana = 5
6    //张三 去 超市 买了苹果和香蕉一共花了 15 元
7    print("$name 去 $address 买了苹果和香蕉一共花了 ${apple + banana} 元")
8}

如果用java写,你可以想象要怎么拼接

8.条件判断

条件判断我们有if语句

1fun main(arg:Array<String>){
2    val i = 10
3    if(i < 5){
4        println("i比5小")
5    }else{
6        println("i比5大")
7    }
8}

9.循环

循环使用in即可,在后面区间中使用

10.空类型

在Java中可能会出现空指针异常,但是在kotlin中是可以避免这种问题的,我们来看下空类型判断

 1fun main(arg:Array<String>){
 2    //noNull(null) 报错
 3    println(yesNull(null))
 4}
 5
 6//不能为null
 7fun noNull(text:String):String{
 8    return "Hello $text"
 9}
10
11//可以为null
12fun yesNull(i:Int?):String{
13    if(i === null){
14        return "i == null"
15    }
16    return "Hello $i"
17}
</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值