博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kotlin学习笔记2
阅读量:5039 次
发布时间:2019-06-12

本文共 1624 字,大约阅读时间需要 5 分钟。

Idioms

创建JavaBean(DTO,POJO etc)

data class Customer(val name: String, val email: String)

data class 自动提供了

  • getter(setter for vals)

  • equals, hashCode, toString, copy, componentX方法

函数参数的默认值

fun foo(a: Int = 0, b: String = "") { ... }

filter a list

val positives = list.filter { x -> x>0} // 过滤出大于零的值,另外,这种语法类似于ruby// shorterval positives_1 = list.filter { it > 0 }

Instance check

// 对了,when实际上实现了switch的功能when (x) {is Foo -> ...is Bar -> ...else -> ...}

key-value遍历map

for ((k, v) in map) {println("$k -> $v")}

range

for (i in 1..100) { ... } // closed range: includes 100for (i in 1 until 100) { ... } // half-open range: does not include 100for (x in 2..10 step 2) { ... }for (x in 10 downTo 1) { ... }if (x in 1..10) { ... }

不可变容器

val list = listOf("a", "b", "c")val map = mapOf("a" to 1, "b" to 2, "c" to 3)

惰性求值

val p: String by lazy {// compute the string}

函数扩展

fun String.spaceToCamelCase() { ... }"Convert this to camelcase".spaceToCamelCase()

单例

object Resource { // 和scala语法一致val name = "Name"}

with

class Turtle {fun penDown()fun penUp()fun turn(degrees: Double)fun forward(pixels: Double)}val myTurtle = Turtle()with(myTurtle) { //draw a 100 pix squarepenDown()for(i in 1..4) {forward(100.0)turn(90.0)}penUp()}

resource

val stream = Files.newInputStream(Paths.get("/some/file.txt"))stream.buffered().reader().use { reader ->println(reader.readText())}

泛型

// public final class Gson {// ...// public T fromJson(JsonElement json, Class classOfT) throws JsonSyntaxException {// ...inline fun Gson.fromJson(json: JsonElement): T = this.fromJson(json, T::class.java)

转载于:https://www.cnblogs.com/alchimistin/p/7867080.html

你可能感兴趣的文章
Ubuntu 编译出现 ISO C++ 2011 不支持的解决办法
查看>>
1.jstl c 标签实现判断功能
查看>>
Linux 常用命令——cat, tac, nl, more, less, head, tail, od
查看>>
超详细的Guava RateLimiter限流原理解析
查看>>
VueJS ElementUI el-table 的 formatter 和 scope template 不能同时存在
查看>>
Halcon一日一练:图像拼接技术
查看>>
Swift - RotateView
查看>>
iOS设计模式 - 中介者
查看>>
centos jdk 下载
查看>>
HDU 1028 Ignatius and the Princess III(母函数)
查看>>
关于多路复用器的综合结果
查看>>
(转)面向对象最核心的机制——动态绑定(多态)
查看>>
token简单的使用流程。
查看>>
django创建项目流程
查看>>
UIActionSheet 修改字体颜色
查看>>
Vue 框架-01- 入门篇 图文教程
查看>>
Spring注解之@Lazy注解,源码分析和总结
查看>>
多变量微积分笔记24——空间线积分
查看>>
Magento CE使用Redis的配置过程
查看>>
poi操作oracle数据库导出excel文件
查看>>