首页
学习
活动
专区
工具
TVP
发布

Android Note

专栏作者
85
文章
107991
阅读量
29
订阅数
Kotlin For Android 笔记(三)
使用 @JvmOverloads 可以极大的简化构造函数的模板代码 Java 版本
code_horse
2019-03-04
5270
Kotlin For Android 笔记(二)
使用 Android 项目,Kotlin 被编译成运行在 Dalvik 上的 Java 字节码。虚拟机(安卓 5.0 之前)或安卓运行时(安卓 5.0 及更高版本)。两个虚拟机都只能执行类内定义的代码。为了解决这个问题,Kotlin 编译器为顶级函数生成类。这个类名由 文件名 和 kt 后缀构成。在这样的 class 里函数和属性是静态的。例如,假设我们定义了 printer.kt 文件中的函数:
code_horse
2019-03-04
4270
Kotlin —  apply vs with
apply和with的不同 ① apply接收一个实例作为接收者,同时要求一个实例作为参数传递。 ② apply返回接收者,with返回其块内最后一个表达式的结果。 通常情况下,当你需要对一个对象某些事情并返回时,可以使用apply。而当你需要在一个对象上执行一些操作并返回一些可以使用的其他对象时,你可以使用with。 apply示例代码: fun getUser():User{ return User().apply{ name="andorid coder" age=
code_horse
2018-07-02
5020
Kotlin中run, with, let, also and apply使用方法
1、普通写法和扩展函数 with和T.run 看起来很相似,并且它们的功能也类似。 with(webview.setting){ javaScriptEnabled = true databaseEnabled = true } webview.settings.run { javaScriptEnabled = true databaseEnabled = true } 如果webview.settings为空呢? with(webview.settings) {
code_horse
2018-07-02
6600
移除Kotlin代码中的感叹号(!!)
空安全是Kotlin提供的功能之一。它让你思考语言级别的可空性,所以你可以避免在Java中很常见的NullPointerException。但是,当你自动将Java代码转换为Kotlin时,你会看到很多!!符号。这意味着“你在这里有一个潜在的未处理的KotlinNullPointerException”。 下面介绍几种方式可以去避免使用!! ① 使用val而不是var Kotlin让你在语言层面思考不可变性。val是只读的,var是可变的。建议你尽可能多的使用只读属性。它们是线程安全的,并且在函数式编程中
code_horse
2018-07-02
1.6K0
Kotlin —  Sealed Classes(密封类)
我先翻译为密封类吧O__O "…。 什么是密封类? 官方文档:密封类用于表示受限类的层次结构,当一个值有一个有限的类型,但不能有任何其他类型。它们在某种意义上是枚举类的扩展:枚举类型的值的集合也受到限制,但是每个枚举常量只能作为一个单独的实例存在,而一个密封类的子类可以有多个可以包含状态的实例。 如何声明密封类? 只需要在class前面添加关键字sealed sealed class Person{ data class YellowPerson(val name:String):Person
code_horse
2018-07-02
4350
Kotlin — Extension Functions(扩展函数)
扩展功能 扩展函数是帮助我们扩展类的功能,而不必修改原代码的函数。 换句话说,Kotlin中的扩展函数允许我们通过添加新的函数来扩展一个类的功能。 示例代码: fun Int.triple():Int{ return this*3 } 现在我们可以这样使用: var result=3.triple() 接下来,我们介绍一下android中该如何使用: fun ImageView.loadImage(url:String){ GlideApp.with(context).load(url).into(
code_horse
2018-07-02
5530
Kotlin —  最佳实践
使用表达式 不建议: fun getDefaultSex(name:String):User{ if(name=="mike"||name=="jack"){ return male; } if(name="marry"||name="jane"){ return female } return male } 建议: fun getDefaultSex(name:String)=when(name){ "mike","ja
code_horse
2018-07-02
1.5K0
Kotlin —  Destructuring Declarations(解构声明)
什么是解构? 解构是从存储在(可能是嵌套的)对象和数组中的数据中提取多个值的一种便捷方式。 有时候,将对象拆分为多个变量是很方便的,例如: val (name,age)=user 现在,你可以单独的使用name和age了: println(name) println(age) 我们可以通过函数返回两个值,例如: data class User(val name:String,val age:Int) fun getUser():User{ return User(name,age) } 现在我们可以去使
code_horse
2018-07-02
3290
Kotlin —  lateinit vs lazy
Kotlin属性初始化 如果不想在一开始就初始化一个属性,那么你可以使用下面两个关键字。 ① lateinit ② lazy lateinit lateinit的意思是后面再初始化。 通常情况下,声明为非null类型的属性必须先初始化。但是,这在有些时候不是很方便。 要处理这种情况,可以使用lateinit修饰符修饰属性。 例如: public class Main{ lateinit var user:User fun init(){ user=User()
code_horse
2018-07-02
6430
介绍Kotlin第一部分(翻译篇)
1、介绍Kotlin Kotlin是jvm新的开发语言。 谷歌推广Kotlin作为其基于java的Android平台上的第一类语言在五月份。从那之后我就纳闷:这是什么语言?Kotlin已经有好几年了,并且在2016年2月正式在生产系统上运行,语言后的1.0版本,为期一年左右。该语言已经获得很多的赞赏和喜爱。 在这篇文章中我们将涵盖语法等基本构建块,在介绍Kotlin第二部分,我们将接触变量,函数,类,接口和对象。最后,在第三部分,我们来看一看控制流程的几个例子。 1、构建过程 当Kotlin在发展的时候
code_horse
2018-07-02
6210
Kotlin与Databinding(一)简介封装
简介 使用ObservableField<T>来初始化变量,例如:var userPhone=ObservableField<String>() 封装 这时候我们需要对model类进行一层封装才能达到
code_horse
2018-07-02
7150
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档