分类
商品
商品
店铺
资讯
分类
商品
商品
店铺
资讯

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

  • 时间:2018-07-01 23:33 作者:全栈取经之路 来源:全栈取经之路 阅读:629
  • 扫一扫,手机访问
摘要:Kotlin是谷歌力推的一种编程语言,除了写Android,Java服务端,甚至能写JS,有很多语法糖,在国外的技术论坛也有Kotlin的文章比例也越来越多。。。看一下谷歌开发者账号推出的这篇文章。这篇文章详情开发者使用 31 天学习 Kotlin 的心得,深入浅出地详情了 Kotlin 的少量基本

Kotlin是谷歌力推的一种编程语言,除了写Android,Java服务端,甚至能写JS,有很多语法糖,在国外的技术论坛也有Kotlin的文章比例也越来越多。。。看一下谷歌开发者账号推出的这篇文章。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

这篇文章详情开发者使用 31 天学习 Kotlin 的心得,深入浅出地详情了 Kotlin 的少量基本特性以及高级使用法,对处于不同阶段的 Kotlin 开发者来说,在提高开发效率和理解 Kotlin 提供少量参考,希望能对大家有所帮助。

第一周

Day 1:可见性

在 Kotlin 中一切都是默认 public 的。并且 Kotlin 还有一套丰富的可见性修饰符,例如:private, protected, internal。它们每个都以不同的方式降低了可见性。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 2:Elvis 操作符

需要解决代码中的空值?能用 elvis 操作符,避免您的 “空情况” (null-erplate)。这只是替换空作为值或者者返回事件情况的一个小语法。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 3:String 模板

格式化字符串?将 $ 放在变量名的前面去表达字符串中的变量和表达式。用 $ {expression} 求表达式的值。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 4:When 表达式

强大的 switch!Kotlin 的 When 表达几乎能匹配任何东西。字面值,枚举,数字范围。您甚至能调使用任意函数!

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 5:循环,范围表达式与解构

for 循环在与其余两种 Kotlin 特性一起用时能取得超级可以力:范围表达式和解构。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 6:属性

在 Kotlin 中,类能具备可变和只读属性,默认情况下生成 getter 和 setter。假如需要,您也能实现自己设置的。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 7:解构公告

Android KTX 用解构来分配颜色的组件值。您能在您的类中用解构,或者者扩展示有的类来增加解构。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

第一周学习小结:

本周以基本知识为主:解决空错误,简化循环和条件,属性,解构架。下一周我们将会深入探究 Kotlin 的更多功可以。

第二周

Day 8:简单的 bundle

准备去通过简洁的方式去创立 bundle,不调使用 putString,putInt,或者它们的 20 个方法中的任何一个。一个调使用让您生成一个新的 bundle,它甚至能解决 Arrays。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 9:Parcelize

喜欢 Parcelable 的速度,但不喜欢写所有的代码?和 @Parcelize 打个招呼。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 10:Data 类和 equality

能创立具备一个具备解决数据的类吗?将它们标记为 "Data" 类。并默认实现生成 equals() 方法 - 相当于 hashCode(),toString() 和copy(),并检查结构能否相等。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 11:简化 postDelay

Lambda 非常贴心,用最后一个参数调使用语法您能取消回调,Callable 和 Runnable,例如 Android KTX 贴心的使用一个小包装来解决 postDelayed。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 12:默认参数

方法参数的数量能否太多?在函数中指定默认参数值。用命名参数使代码更具可读性。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 13:从 Java 编程语言调使用 Kotlin

在同一个项目中用 Kotlin 和 Java?您有没有顶级功可以或者属性的课程?默认情况下,编译器将生成类名称 YourFileKt。通过用 @file:JvmName 注释文件来更改它。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 14:在没有迭代器的情况下迭代类型

迭代器使用在了有趣的地方!Android KTX 将迭代器增加到 viewGroup 和 sparseArray。要定义迭代器扩展请用 operator 关键字。 Foreach 循环将用扩展名!

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

第二周学习小结:

这周我们更深入学了 Kotlin 的特性:简洁 bundle,迭代,Data,postDelay,默认参数,序列化。下一周我们会理解更多的 Kotlin 特性并且开始探究 Android KTX。

第三周

Day 15:sealed 类

Kotlin 的 sealed 类能让您轻松的解决错误数据,当结合 LiveData 您能使用一个 LiveData 同时代表成功和失败的路径,这比使用两个不变量要好。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

您也能将 sealed 类使用在 RecyclerView 的 adapter 中,非常适合于 ViewHolders —— 使用一组干净的类型明确地分派给每个持有者。使用作表达式时,假如有类型不匹配,编译器将会出错。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

用 RecyclerViews,假如我们有很多来自 RecyclerView 中 item 的回调,比方一个点击,分享和删除 item 的项目,我们能用 sealed 类。一个回调能解决所有的事情!

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 16:懒加载

懒加载是个好东西!通过用懒加载,能省去昂贵的属性初始化的成本直到它们真正需要。计算值而后保存并为了未来的任何时候的调使用。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 17:Lateinit

Android 中,在 onCreate 或者者其它的回调初始化对象,但在 Kotlin 中不为空的对象必需初始化。那么怎样办呢?能输入 lateinit。来承诺最终将会初始化。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 18:要求 (require) 和检查 (check)

您方法的参数是有效的吗?使用 require 在用前能检查它们,假如它们是无效的将会抛出 IllegalArgumentException。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

您的封闭类的状态能否正确?能用 check 来验证。假如检查的值为 false,它将抛出 IllegalStateException。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 19:内联 (InLine)

等不及要用 lambdas 来生成一个新的接口?kotlin 能使您制定一个 inline 的方法 -- 这意味着调使用将替换方法体,使用很非常简单的方法来生成 lambda 的接口。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 20:运算符重载

使用操作符重载快更快速写 Kotlin。像 Path,Range或者 SpannableStrings 这样的对象允许像加法或者减法这样的操作。通过 Kotlin,您能实现自己的操作符。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 21:顶级方法和参数

类的实使用方法?将它们增加到源文件的顶层。在 Java 中,它们被编译为该类的静态方法。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

您能否为您的类定义了静态常量?使它们成为顶级属性。它们将被编译为字段和静态访问器。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

第三周学习小结:

本周主要探讨少量基本的 Kotlin 特性,如运算符重载,内联,运算符重载,懒加载,以及非常强大的 inLine,并展现了用 Android KTX 解决内容值,捆绑包和回调时如何编写更简洁的代码。

第四周

Day 22:简单的内容值

将 ContentValues 的强大功可以与 Kotlin 的简洁性相结合。用 Android KTX 只传递一个 Pair 创立 ContentValues。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 23:DSLs

特定于域的语言能通过用类型安全的构建器来完成。它们为简化 API 做出贡献;您也能自己借助扩展 lambdas 和类型安全构建器等功可以构建它们。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Spek 是一个构建为 Kotlin DSL 的测试库。 Spek 不用 @Annotations,而是提供了一种不依赖于反射的类型安全的方式来公告测试代码。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Android 上 Kotlin 的另一个 DSL 是 Anko。Anko 允许您用公告性代码构建 Android 视图。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 24:具体化

具体化的概念例子:Android KTX 中的 Context.systemService() 用泛化来通过泛型传递 “真实” 类型。没有通过 getSystemService。

Android KTX:Context.systemService()

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 25:Delegates

通过 by 使用您的工作委托给另一个类。通过类继承,并将属性访问器逻辑与委托者属性重使用。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 26:延期方法

没有更多的 Util 类。通过用扩展功可以扩展类的功可以。把您要扩展的类的名字放在您增加的方法的名字前面。

扩展功可以的少量特性:

  • 不是成员函数
  • 不要以任何方式修改原始类
  • 通过静态类型信息处理编译时间
  • 会被编译为静态函数
  • 不要多态性

例如:String.toUri()

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 27:Drawable.toBitmap() 轻松转换

假如您曾经将 Drawable 转换为 Bitmap,那么您知道需要多少样?Android KTX 具备一系列功可以,能使您的代码在用图形包中的类时更加简洁。

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 28:Sequences, lazy 和 generators

序列是从未存在的列表。序列是迭代器的表亲,一次只可以懒散地产生一个值。这在用 map 和 fifter 时非常重要 - 它们将创立序列,而不是为每一步都复制列表!

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

您能从列表中创立序列或者指定下一个功可以。假如您永远不会终止一个序列,它能是无限长的而不会耗尽内存。用 Kotlin 中的协程您也能用生成器!

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 29:更简单的 Spans

功可以强大但很难用 - 这就是 Spans API 感觉的文本样式。 Android KTX 为少量最常见的 span 增加了扩展功可以,并使 API 更易于用。Android KTX: 可跨越字符串的构建器

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 30:updatePadding 扩展

通过默认参数扩展示有的 API 通常会让每个人都高兴。 Android KTX 允许您用默认参数在视图的一侧设置填充。一行代码能节省很多代码!Android KTX: View.updatePadding

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

Day 31:范围外 run,let,with,apply

让我们运行少量标准的 Kotlin 函数!简短而强大,run,let,with 和 appy 都有一个接收器 (this),可可以有一个参数 (it) 并可可以有一个返回值。差异如下:

run

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

let

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

with

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

apply

31 天从浅到深轻松学习 Kotlin——Android,服务端,前台来学习下

第四周学习小结:

本周我们涵盖了更多语言特性,如 interop,refied 和 sequence,并且在 Android KTX,展现了它帮助您编写简洁易读的代码的少量方法。我们也探讨了高级特性:领域特定语言 (DSL)。

文章来源: 谷歌开发者 微信公众号 如有侵权请联络删除

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】极客时间-数据分析实战45讲【完结】(2021-09-02 16:26)
【系统环境|windows】字节跳动前台面试题解析:盛最多水的容器(2021-03-20 21:27)
【系统环境|windows】DevOps敏捷60问,肯定有你想理解的问题(2021-03-20 21:27)
【系统环境|windows】字节跳动最爱考的前台面试题:JavaScript 基础(2021-03-20 21:27)
【系统环境|windows】JavaScript 的 switch 条件语句(2021-03-20 21:27)
【系统环境|windows】解决 XML 数据应用实践(2021-03-20 21:26)
【系统环境|windows】20个编写现代CSS代码的建议(2021-03-20 21:26)
【系统环境|windows】《vue 3.0探险记》- 运行报错:Error:To install them, you can run: npm install --save core-js/modules/es.arra...(2021-03-20 21:24)
【系统环境|windows】浅谈前台可视化编辑器的实现(2021-03-20 21:24)
【系统环境|windows】产品经理入门迁移学习指南(2021-03-20 21:23)
血鸟云
手机二维码手机访问领取大礼包
返回顶部