谈谈对kotlin的理解
简介
Kotlin是一门静态语言,支持多种平台,包括移动端、服务端以及浏览器端。
此外,Kotlin还是一门融合了面向对象与函数式编程的语言,支持泛型、安全的空判断
并且Kotlin与Java可以做到完全的交互。
Kotlin特点
代码量少且代码末尾没有分号。
被调用的方法需放到上边。
Kotlin是空安全的:在编译时期就处理了各种null的情况,避免了执行时异常。
它可扩展函数:我们也可以扩展任意类的更多的特性。
它也是函数式的:比如,使用lambda表达式来更方便地解决问题。
高度互操作性:你可以继续使用所有用Java写的代码和库,甚至可以在一个项目中使用Kotlin和Java两种语言混合编程
kotlin比Java好在哪里,是函数式编程吗?
Kotlin优势
kotlin更安全,空安全
代码简洁,30%
函数式支持
扩展函数
Kotlin中没有静态成员
https://blog.csdn.net/luo_boke/article/details/107172965
Kotlin协程 要不看下实战?
https://blog.csdn.net/weixin_44339238/article/details/104659332
2、相关书籍
个人认为还是需要找一本书籍好好地阅读一遍,一下提供了相关书籍可以选择适合自己的。
NO.1
《Kotlin for Android Developers》
Kotlin是编写Android应用程序的新官方语言,多亏了这本书,你很快就能写出代码。直奔主题,实用和完整的例子,它将在开发Android应用程序的同时展示你的语言。学习Kotlin并开始使用这个强大而现代的语言再次享受Android开发。
NO.2
《Kotlin开发快速入门与实战》
学习本书之前不需要具备任何的计算机专业背景,任何有志于APP开发的读者都能利用本书从头学起。
资深软件开发工程师根据Kotlin最新版本撰写,系统讲解Kotlin开发技巧和项目实战。全书共分为7章,内容层次清晰,难度循序渐进。希望通过阅读本书,能够让你成为一个全栈工程师。
NO.3
《疯狂Kotlin讲义》
本书尤其适合从Java转Kotlin的读者,对于没有Java功底的读者,可忽略“对比”部分,直接学习本书也可掌握Kotlin编程。
本书对Kotlin的解读十分系统、全面,超过Kotlin官方文档本身覆盖的内容。本书很多地方都会结合Java字节码进行深入解读,比如对Kotlin扩展的解读,对Kotlin主、次构造器的解读,这种解读目的不止于教会读者简单地掌握Kotlin的用法,而是力求让读者深入理解Kotlin,且更好地理解Java。
NO.4
《Kotlin实战》
本书主要面向有一定Java 经验的开发者。
本书将从语言的基本特性开始,逐渐覆盖其更多的高级特性,尤其注重讲解如何将 Koltin 集成到已有 Java 工程实践及其背后的原理。本书分为两个部分。第一部分讲解如何开始使用 Kotlin 现有的库和API,包括基本语法、扩展函数和扩展属性、数据类和伴生对象、lambda 表达式,以及数据类型系统(着重讲解了可空性和集合的概念)。第二部分教你如何使用 Kotlin 构建自己的 API,以及一些深层次特性——约定和委托属性、高阶函数、泛型、注解和反射,以及领域特定语言的构建。
本书适合广大移动开发者及入门学习者,尤其是紧跟主流趋势的前沿探索者。
NO.5
《揭秘Kotlin编程原理》
本书深入介绍Kotlin面向对象设计的语法特性及其背后的实现方式。
在本书中,读者不仅能清晰地了解Kotlin的语法、高级特性,还能真正地掌握Kotlin背后的实现机制和设计哲学,形成对Kotlin语言既直观、又深刻的认识——在此基础上,读者能准确、快速地上手实践,大大提升自己的移动开发能力。
Kotlin的这些特性和实现机制,可以帮助开发者扫清开发道路上的一些障碍,让开发变得更加简单!本书是一本值得拥有,能切实帮助读者加薪提职的好书!
项目
学习一门语言最快的方式就是看其如何在实际项目中运用,有了上面的基础和进阶,下面我们看一些开源项目:
1.Kotlin-for-Android-Developers(★1676)
介绍:这个项目其实是Kotlin-for-Android-Developers这本书的配套代码,如果你是kotlin的初学者,那么这绝对是你学习kotlin的不二之选。项目通过一个天气的例子很好的展示了kotlin带来的强大功能,比如网络数据的请求,数据的缓存设计,数据库的操作,各种扩展函数的妙用等等。
地址:https://github.com/antoniolg/Kotlin-for-Android-Developers
2.Bandhook-Kotlin (★1494)
介绍:Kotlin版本的音乐播放器,数据来源于LastFm。
地址:https://github.com/antoniolg/Bandhook-Kotlin
3.GankClient-Kotlin (★1216)
介绍:gank.io kotlin实现的干货集中营Android客户端,风格采用了Material Design。
地址:https://github.com/githubwing/GankClient-Kotlin
4.PoiShuhui-Kotlin(★897)
介绍:一个用Kotlin写的简单漫画APP。
地址:https://github.com/wuapnjie/PoiShuhui-Kotlin
5.Eyepetizer-in-Kotlin(★1167)
介绍:Kotlin版本的Eyepetizer客户端
地址:https://github.com/LRH1993/Eyepetizer-in-Kotlin
6.Tucao(★792)
介绍:Kotlin版本的吐槽客户端
地址:https://github.com/blackbbc/Tucao
资源
一、重要资源
Kotlin 官网
https://kotlinlang.org/docs/reference/
Kotlin 官方网站是学习 Kotlin 好去处。在参考部分,你可以找到该语言的所有概念和功能的深入解析文档。在教程部分有关于设置工作环境并使用编译器的实用分步指南。
这里还有个 Kotlin 编译器,是一个浏览器 APP,你可以在上面尝试使用这门语言。它能加载许多示例,包括 Koans 课程 — 这是目前熟悉 Kotlin 语法的最好方式。
Kotlin 官博
https://blog.jetbrains.com/kotlin/
Kotlin 的官方博客由 JetBrains 的一位作者负责。你可以在这里找到所有与 Kotlin 相关的新闻、更新、教程、使用技巧等的内容。
在 Android 上开始使用 Kotlin
https://developer.android.com/kotlin/get-started.html
一篇很牛叉的文章,向我们展示了如何使用 Kotlin 编写和运行 Android 应用程序的测试
从 Java 到 Kotlin
https://github.com/MindorksOpenSource/from-java-to-kotlin
实用的快速提醒列表工具包含了一些简短的代码块,藉由这个来帮助你快速找到通用 Java 操作符、功能以及声明的 Kotlin 替代方案。
Kotlin 教学插件
https://blog.jetbrains.com/kotlin/2016/03/kotlin-educational-plugin/
用于 IntelliJ IDEa 的插件,可让你在本地离线环境下使用 Koans 课程。
Kotlin on GitHub
https://github.com/jetbrains/kotlin
Kotlin 于 2012 年开源,你可以对该语言进行贡献。
Kotlin Android 模板
https://github.com/nekocode/Kotlin-Android-Template
Android 项目模板,使其非常容易设置稳定的 Kotlin 工作区,并快速引导你开发应用程序。
不可错过的 Kotlin 资源列表
https://github.com/KotlinBy/awesome-kotlin
这是一个比较完整的 Kotlin 资源列表,包括各种实用链接、书籍、库、框架和视频等。该列表的组织结构非常好,kotlin.link 也提供了一个风格化的版本。
kotlin设计模式
https://github.com/dbacinski/Design-Patterns-In-Kotlin
DariuszBaciński 创建了一个 GitHub repo,其中有在 Kotlin 中实现的常见设计模式,也有用其他语言编写的类似项目,包括 Java,Swift,Java 和 PHP,如果你是其中一项语言的使用者,可以用它们作为参考点。
二、视频资源
Kotlin 介绍
https://www.youtube.com/watch?v=X1RVYt2QKQE
来自 Google I / O 2017 的演讲,大会首次向人们介绍 Kotlin,并提出了改进工作流程的想法。它涵盖了许多基础知识,并展示了一些很酷的 Kotlin 技巧。
明日胜于今,我用 Kotlin
https://www.youtube.com/watch?v=fPzxfeDJDzY
Google I / O 2017 大会关于 Kotlin 的第二个演讲。这个演讲涵盖了更多高级话题,如设计模式,最佳实践和其他常见规则。 演讲也揭示了在生产中使用 Kotlin 的意义,以及在工作中采用新兴语言将面临的挑战。
Peter Sommerhoff 教你学 Kotlin
https://www.youtube.com/playlist?list=PLpg00ti3ApRweIhdOI4VCFFStx4uXC__u
这是一个免费的 Kotlin 课程,适合初学者,前面介绍了从变量到条件循环和函数的所有基础知识,后面会深入到更高级的主题,如 Kotlin 中的面向对象以及像 lambda 表达式的功能编程。
使用 Kotlin&Gradle 更好地开发 Android
https://www.youtube.com/watch?v=_DaZQ374Chc
这个讲座从 2016 年开始,它介绍了现实世界中的编程语言功能,你将了解到 Kotlin 是如何适应 Android 工作流程中存在的工具。
使用 Kotlin&Gradle 更好地开发 Android
https://www.youtube.com/watch?v=ZlQhmkp_jyk
一个 8 分钟的浓缩教程,让你快速了解 Kotlin 的主要功能,如变量声明、Lambdas、扩展功能等等。
Jake Wharton:用 Kotlin 进行 Android 开发
https://www.youtube.com/watch?v=A2LukgT2mKc&t
关于 Kotlin 的介绍,演讲向我们解释了新语言是如何改进 Android 生态系统的,并展示了许多炫酷的方式,我们可以使用智能的 Kotlin 语法来获得优势
Kotlin 泛型
泛型,即 “参数化类型”,将类型参数化,可以用在类,接口,方法上。
与 Java 一样,Kotlin 也提供泛型,为类型安全提供保证,消除类型强转的烦恼
在Kotlin中要理解一些语法,只要认识到Kotlin语言最后需要编译为class字节码,Java也是编译为class执行,也就是可以大致理解为Kotlin需要转成Java一样的语法结构,
Kotlin就是一种强大的语法糖而已,Java不具备的功能Kotlin也不能越界的。
用Kotlin去提高生产力:汇总Kotlin相对于Java的优势 kotlin_tips
https://juejin.cn/post/6844903585730265095
- 推荐一个Kotlin的实践项目debug_view_kotlin,用kotlin实现的Android浮层调试控制台,实时的显示内存、FPS、App启动时间、Activity启动时间、文字Log
优化使用kotlin开发Android app的编译速度
https://juejin.cn/post/6844903839280136206
精通Kotlin标准函数:run、with、let、also和apply
为什么不直接使用 Array 而是 IntArray ?
https://blog.csdn.net/qq_23626713/article/details/90698281
Java和kotlin的与,或,异或,移位运算
https://blog.csdn.net/qq_43522147/article/details/110673194
线程切换哪家强?RxJava与Flow的操作符对比
https://blog.csdn.net/Coo123_/article/details/115189533
https://juejin.cn/post/6927883139519873032
我是如何使用Kotlin优化项目代码(1)
https://juejin.cn/post/6941686779950923806#heading-2
Kotlin + Flow 实现的 Android 应用初始化任务启动库
https://juejin.cn/post/6938229049462358047
Kotlin组件化实践——仿开眼短视频APP
https://juejin.cn/post/6934609476561584142
"Kotlin"系列: 一、Kotlin入门
https://juejin.cn/post/6942251919662383134#heading-4
Kotlin你不知道的秘密(一)
https://juejin.cn/post/6940496365113835533
2018年Kotlin学习资料汇总
https://juejin.cn/post/6844903636510720014
Android 学习文档整理收集
https://juejin.cn/post/6844903657486417933
用 Kotlin 开发 Android 项目是一种什么样的感受?
https://juejin.cn/post/6844903472358227976
Android 11/Android R
https://juejin.cn/post/6862572234779656200
Android 10(Android Q) 适配心得
https://juejin.cn/post/6844903946000187406
Kotlin 初尝之项目实践总结
https://juejin.cn/post/6844903668022509575
符号: 类 ActivityShopBinding 错误: 找不到符号?
clean project
rebuildproject
重启studio