![](https://img-blog.csdnimg.cn/20191118223056293.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Kotlin
文章平均质量分 95
熊喵先生
现就职于阿里钉钉,担任无线开发专家。有丰富的 Kotlin 实际开发经验,此外对 Dart、Flutter 已有两年的研究和开发经验。专注于大前端跨平台技术,并且在技术团队内部积极推广 Flutter 技术在实际项目中落地。
展开
-
消失了一年,我都干了些什么?
1、写在前面今天是除夕夜,也是2020农历年的最后一天,回顾2020年大家明显感觉到我已经在各大博客平台(CSDN、掘金、知乎、微信公众号)不再更新和分享文章,先向一直默默关注我的小伙伴们说声抱歉。那是不是2020年我放弃一直以来坚持的写作呢,其实并没有,相反2020年我挑战了自己很多的极限,做了很多自己之前没做过的事。我相信2020年对于每个人来说都意义非凡,如果用一句话来形容我的2020年,那就是一切都在变化,学会拥抱变化,努力在变化中成长。回首这一年,可以说是我毕业后变化最多的一年:Change原创 2021-02-11 14:25:54 · 1451 阅读 · 2 评论 -
[译]探索Kotlin中隐藏的性能开销-Part 3
翻译说明:原标题# Exploring Kotlin’s hidden costs — Part 3原文地址: https://medium.com/@BladeCoder/exploring-kotlins-hidden-costs-part-2-324a4a50b70原文作者: Christophe Beyls代理属性和Range在发布有关Kotlin编程语言的性能开销系列的前两篇文...翻译 2019-10-27 22:45:43 · 546 阅读 · 0 评论 -
[译]探索Kotlin中隐藏的性能开销-Part 2
翻译说明:原标题: Exploring Kotlin’s hidden costs — Part 2原文地址: https://medium.com/@BladeCoder/exploring-kotlins-hidden-costs-part-2-324a4a50b70原文作者: Christophe Beyls这是关于探索Kotlin中隐藏的性能开销的第2部分,如果你还没有看到第1部分...翻译 2019-10-20 17:57:53 · 415 阅读 · 0 评论 -
如何让你的回调更具Kotlin风味
简述: 这应该是2019年的第一篇文章了,临近过年回家一个月需求是真的很多,正如康少说的那样,一年的需求几乎都在最后一两月写完了。所以写文章也搁置了很久,当然再忙每天都会刷掘金。很久就一直在使用Kotlin写项目,说实话到目前为止Kotlin用的是越来越顺手了(心里只能用美滋滋来形容了)。当然这次依然讲的是Kotlin,说下我这次需求开发中自己一些思考和实践。其中让自己感受最深的就是: “Don’...原创 2019-01-29 20:35:57 · 20722 阅读 · 0 评论 -
[译]Effective Kotlin系列之考虑使用原始类型的数组优化性能(五)
翻译说明:原标题: Effective Kotlin: Consider Arrays with primitives for performance critical processing原文地址: https://blog.kotlin-academy.com/effective-kotlin-use-sequence-for-bigger-collections-with-more-th...翻译 2018-12-14 00:13:37 · 1972 阅读 · 0 评论 -
JetBrains开发者日见闻(二)之Kotlin1.3的新特性(Contract契约与协程篇)
简述:上接上篇文章,今天我们来讲点Kotlin 1.3版本中比较时髦的东西,那么,今天就开始第二篇,看过一些大佬写关于Kotlin 1.3版本新特性的文章,基本上都是翻译了Kotlin Blog的官网博客。今天我不打算这么讲,既然今天的主题是时髦那就讲点有意思的东西。就像JetBrains开发者日上布道师Hali在讲Kotlin1.3新特性的时候完全就不用PPT的,拿起代码就是干。一起来看下今天...原创 2018-12-04 01:12:46 · 4936 阅读 · 1 评论 -
[译]Effective Kotlin系列之使用Sequence来优化集合的操作(四)
简述: 今天迎来了Effective Kotlin系列的第四篇文章: 使用Sequence序列来优化大集合的频繁操作.关于Sequence这个主题应该大家都不陌生,我写过几篇有关它的文章,可以说得上很详细了。如果你对它的使用不太熟悉,欢迎查看下面几篇有关文章:浅谈Kotlin中的Sequences源码解析[译]Kotlin中是应该使用序列(Sequences)还是集合(Lists)?[译]...翻译 2018-12-13 00:42:23 · 2200 阅读 · 1 评论 -
[译]Kotlin中内联类的自动装箱和高性能探索(二)
翻译说明:原标题: Inline Classes and Autoboxing in Kotlin原文地址: https://typealias.com/guides/inline-classes-and-autoboxing/原文作者: Dave Leeds在上一篇文章中,我们知道了Kotlin的实验阶段的新特性内联类是如何让我们"创建需要的数据类型但是不会损失我们需要的性能"。我们了解...翻译 2018-12-08 21:51:51 · 1193 阅读 · 0 评论 -
Jetbrains开发者日见闻(三)之Kotlin1.3新特性有哪些?
简述:上接上篇文章,我们深入分析了Kotlin1.3版本中的Contract契约的内容,那么这篇文章将会继续把Kotlin1.3新特性研究完毕。这篇文章还有个非常重要的点就是inline class 内联类。关于内联类的知识除了这篇文章会有介绍,后面马上会翻译几篇有关Kotlin中的内联类相关内容。只有一个目的彻底搞定Kotlin中的内联类。那我们一起来看下本次提纲:一、inline cla...原创 2018-12-05 16:01:18 · 1706 阅读 · 0 评论 -
JetBrains开发者日见闻(一)之Kotlin/Native 尝鲜篇
简述:今天我们来讲点Kotlin中比较时髦的东西,有的人可能会说:“不像你之前的风格啊,之前的文章不是一直在死扣语法以及语法糖背后秘密。当你还在死扣泛型语法的时候,别人的文章早就说了Kotlin/Native和Kotlin1.3的新特性”。瞬间感觉自己out了,今天我们就说说这些时髦的东西,也许你能看到一些和别人不一样的东西哦。前段时间你们的熊猫小哥哥(也就是我),由于对Kotlin过度热爱,...原创 2018-12-02 23:56:01 · 5896 阅读 · 0 评论 -
教你如何攻克Kotlin中泛型型变的难点(应用篇)
简述: 这是泛型型变最后一篇文章了,也是泛型介绍的最后一篇文章。顺便再扯点别的,上周去北京参加了JetBrains 2018开发者日,主要是参加Kotlin专场。个人感觉收获还是挺多的,bennyHuo和彦伟老师精彩演讲确实传递很多干货啊,当然还有Hali布道师大佬带来了的Kotlin1.3版本的新特性以及Google中国技术推广负责人钟辉老师带来的Coroutines在Android开发中的应用...原创 2018-11-26 01:08:11 · 4184 阅读 · 4 评论 -
教你如何攻克Kotlin中泛型型变的难点(下篇)
简述:前几天我们一起为Kotlin中的泛型型变做了一个很好的铺垫,深入分析下类型和类,子类型和子类之间的关系、什么是子类型化关系以及型变存在的意义。那么今天将会讲点更刺激的东西,也就是Kotlin泛型型变中最为难理解的地方,那就是Kotlin中的协变、逆变、不变。虽然很难理解,但是有了上篇文章基础教你如何攻克Kotlin中泛型型变的难点(上篇)理解起来还是相对比较轻松。如果你是初学者不建议直接看...原创 2018-11-14 09:12:03 · 1696 阅读 · 3 评论 -
教你如何攻克Kotlin中泛型型变的难点(上篇)
Kotlin系列文章,欢迎查看:原创系列:Kotlin的独门秘籍Reified实化类型参数(下篇)有关Kotlin属性代理你需要知道的一切浅谈Kotlin中的Sequences源码解析浅谈Kotlin中集合和函数式API完全解析-上篇浅谈Kotlin语法篇之lambda编译成字节码过程完全解析浅谈Kotlin语法篇之Lambda表达式完全解析浅谈Kotlin语法篇之扩展函数...原创 2018-11-08 22:25:43 · 3221 阅读 · 2 评论 -
[译]Kotlin中内联类(inline class)完全解析(一)
翻译说明:原标题: An Introduction to Inline Classes in Kotlin原文地址: https://typealias.com/guides/introduction-to-inline-classes/#why-inline-classes-can-perform-better原文作者: Dave Leeds无论你是编写执行在云端的大规模数据流程程序还是...翻译 2018-12-06 22:02:09 · 4081 阅读 · 2 评论 -
(译)Effective Kotlin系列之探索高阶函数中inline修饰符(三)
简述: 不知道是否有小伙伴还记得我们之前的Effective Kotlin翻译系列,之前一直忙于赶时髦研究Kotlin 1.3中的新特性。把此系列耽搁了,赶完时髦了还是得踏实探究本质和基础,从今天开始我们将继续探索Effective Kotlin系列,今天是Effective Kotlin第三讲。翻译说明:原标题: Effective Kotlin: Consider inline modif...翻译 2018-12-11 00:31:34 · 1510 阅读 · 0 评论 -
[译]记一次Kotlin官方文档翻译的PR(内联类)
简述: 这几天突然没更新文章了,可能有的小伙伴认为寒冬将至,是不是认为我跑路了(哈哈,确实不是哈,这几天感冒挺厉害的,再加上前几天连续熬夜写文章,感觉快扛不住了,所以暂时休息停更了一周。这不这篇内联类官网文档的翻译,已经拖了很多天,今天总算给中文社区的大佬提了PR)。翻译说明:原标题: inline-class原文地址: Kotlin官网译文地址: Kotlin中文站-内联类内联类...翻译 2018-12-22 00:30:40 · 1938 阅读 · 0 评论 -
[译]探索Kotlin中隐藏的性能开销-Part 1
注意: 文末有《Kotlin核心编程》这本书的赠书福利活动哦翻译 2019-07-07 16:45:05 · 1194 阅读 · 0 评论 -
当Kotlin邂逅设计模式之代理模式(二)
简述: 从这篇文章起,我们将继续Kotlin邂逅设计模式系列篇中的第二篇代理模式。代理模式可以说很多初级中级开发者迷惑的设计模式。但是它确实应用很广,不用多说大家非常熟悉的Retrofit框架,内部使用了动态代理设计模式,以注解的方式简化网络请求参数传递,从而实现更高解耦。然而在Kotlin中有天然支持的属性代理语法特性,可以简化Java中代理模式实现的模板代理。一、介绍代理模式(Proxy ...原创 2019-05-21 21:23:38 · 785 阅读 · 0 评论 -
[译]带你揭开Kotlin中属性代理和懒加载语法糖衣
翻译说明:原标题: How Kotlin’s delegated properties and lazy-initialization work原文地址: https://medium.com/til-kotlin/how-kotlins-delegated-properties-and-lazy-initialization-work-552cbad8be60原文作者: Chang W. ...翻译 2019-05-15 23:46:28 · 2347 阅读 · 0 评论 -
教你如何完全解析Kotlin中的注解
简述: 从这篇文章将继续开始探索Kotlin中的一些高级的内容,之前有着重探讨了Kotlin的泛型以及泛型型变等内容。现在我们一起来看下Kotlin中的注解。Kotlin中的注解是100%与Java注解兼容的,有很多相同的地方,但是也有一些不同的地方。一起来瞅瞅吧~一、注解的本质注解实际上就是一种代码标签,它作用的对象是代码。它可以给特定的注解代码标注一些额外的信息。然而这些信息可以选择不同保...原创 2019-04-24 17:19:10 · 6476 阅读 · 2 评论 -
每周一数据结构之链表(Kotlin描述)
一、链表的定义链表是一种递归的数据结构,是一种线性结构,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer),简单来说链表并不像数组那样将数组存储在一个连续的内存地址空间里,它们可以不是连续的因为他们每个节点保存着下一个节点的引用(地址)二、链表的类型单链表1、定义单链表(又称单向链表)是链表中的一种,其特点是链表的链接方向是单向的,对链表的访问要...原创 2019-04-15 00:21:59 · 1691 阅读 · 0 评论 -
教你如何完全解析Kotlin中的类型系统
简述: 已经很久没有更新文章,这大概是2019年第二篇文章了,有很多小伙伴们都在公众号留言说是不是断更了、是不是跑路了。在这里统一回复下我还好,并没有跑路哈,只是在思考接下来文章主要方向在哪? 如何在提升自己的同时可以帮助他人,以及这段时间也在不断认清自己和了解自己,发现自己哪里不足以及如何及时地查漏补缺。下面进入正题:Kotlin类型系统其中涉及到一个很重要的概念就是大家常说的可空性以及为什...原创 2019-04-03 01:00:36 · 1548 阅读 · 0 评论 -
当Kotlin完美邂逅设计模式之单例模式(一)
简述: 从这篇文章开始,我将带领大家一起来探讨一下Kotlin眼中的设计模式。说下为什么想着要开始这么一个系列文章。主要基于下面几点原因:1、设计模式一直是开发者看懂Android源码的一个很大障碍。所以想要理解和运用源码中一些设计思想和技巧,首先看懂源码是第一步,而看懂源码,又得需要设计模式和数据结构算法(我的每周一算法和数据结构文章系列也开始了)作为基础,否则看起来云里雾里,只能死记硬背别...原创 2019-04-08 00:39:04 · 5671 阅读 · 1 评论 -
[译] Kotlin中关于Companion Object的那些事
翻译说明:原标题: A few facts about Companion objects原文地址: https://blog.kotlin-academy.com/a-few-facts-about-companion-objects-37e18429b725](https://blog.kotlin-academy.com/a-few-facts-about-companion-objec...翻译 2019-04-11 00:01:26 · 16517 阅读 · 2 评论 -
每周一算法之二分查找(Kotlin描述)
简述: 从这篇文章起就会开启另一个系列就是上篇文章中提到的每周学习一个基本算法,会结合LeetCode上题目来做分析。解题的语言一般是Kotlin或Java. 如果涉及到一些有关Kotlin的知识点也会做一些介绍。如果平时就养成学习数据结构算法以及刷题的习惯,不管今后你是面试(愿从此再也不是面试造火箭平时拧螺丝了)或在实际上工作中都会对你有很大帮助。这也是这个系列文章的目的。一、时间复杂度最坏...原创 2019-04-04 15:19:47 · 1713 阅读 · 1 评论 -
Kotlin的独门秘籍Reified实化类型参数(下篇)
Kotlin系列文章,欢迎查看:原创系列:有关Kotlin属性代理你需要知道的一切浅谈Kotlin中的Sequences源码解析浅谈Kotlin中集合和函数式API完全解析-上篇浅谈Kotlin语法篇之lambda编译成字节码过程完全解析浅谈Kotlin语法篇之Lambda表达式完全解析浅谈Kotlin语法篇之扩展函数浅谈Kotlin语法篇之顶层函数、中缀调用、解构声明浅谈...原创 2018-10-29 15:51:47 · 6125 阅读 · 4 评论 -
[译]Kotlin的独门秘籍Reified实化类型参数(上篇)
翻译说明:原标题: Getting Real with Kotlin’s Reified Type Parameters原文地址: https://typealias.com/guides/getting-real-with-reified-type-parameters/原文作者: Dave Leeds之前的Kotlin系列文章,欢迎查看:翻译系列:[译]Kotlin泛型中何时...翻译 2018-10-26 00:38:10 · 1894 阅读 · 1 评论 -
[译] 一个简单方式教你记住Kotlin的形参和实参
翻译说明:原标题: Parameters and Arguments: An Easy Way to Remember the Difference原文地址: https://typealias.com/guides/parameters-arguments/原文作者: Dave Leeds简述(俗称扯皮):最近在深入研究Kotlin中的泛型语法,发现它和Java中的泛型有着很大不同,在...翻译 2018-10-17 00:13:31 · 2101 阅读 · 0 评论 -
Kotlin系列之Lambda编译成字节码过程完全解析
简述: 今天带来的是Kotlin浅谈系列第七弹,上篇博客我们聊到关于Kotlin中的lambda表达式的一些语法规则和基本使用。然而我们并没有聊到Kotlin的lambda表达式的本质是什么?我们都知道使用Kotlin来开发Android,最终都会编译成字节码文件.class,然后字节码文件run到JVM上,最后整个应用跑起来。1、为什么需要去对lambda表达式字节码分析?(why)2、...原创 2018-04-28 21:34:28 · 2141 阅读 · 1 评论 -
[译]如何在你的Kotlin代码中移除所有的!!(非空断言)
翻译说明:原标题: How to remove all !! from your Kotlin code原文地址: https://android.jlelse.eu/how-to-remove-all-from-your-kotlin-code-87dc2c9767fb原文作者: David Vávra空安全特性是Kotlin语言最好语法特性之一。它让你在语言层面来考虑可空性,以...翻译 2018-05-18 00:32:44 · 3308 阅读 · 1 评论 -
Kotlin实战篇之自定义View图片圆角简单应用(一)
简述: 关注我的Kotlin浅谈系列文章的小伙伴就知道关于Kotlin语法篇的内容已经发布了一些。然后就会有小伙伴问了一直都在讲语法是否来一波实战了,毕竟一切一切的学习都是为了解决实际问题的,所以准备来一波Kotlin实战篇,主要是用Kotlin来实现一些常见的功能和需求。实现同一个功能相比Java实现你也许会更钟爱于使用kotlin。1、为什么要用Kotlin去实现Android中的自定义...原创 2018-04-27 00:12:08 · 3816 阅读 · 0 评论 -
Kotlin系列之集合和函数式API完全解析-上篇
简述: 今天带来的是Kotlin浅谈系列的第八讲,这讲我们一起来聊聊Kotlin这门语言对函数式编程的支持。我们都知道在kotlin这门语言中函数荣升成为了一等公民,所以在支持函数式编程的方面,Kotlin这门语言也是非常给力的,并且在Kotlin中语法也尽量推荐接近函数式编程的风格。学过以及了解过函数式编程的小伙伴都知道函数式编程最吸引人的地方,莫过于它拥有丰富的函数式操作符,可以使用一种全新的...原创 2018-05-11 01:38:24 · 2465 阅读 · 0 评论 -
(译) 在Kotlin中是应该定义函数还是定义属性?
翻译说明:原标题: Kotlin: should I define Function or Property?原文地址: https://blog.kotlin-academy.com/kotlin-should-i-define-function-or-property-6786951da909原文作者: Igor Wojda最近,我对属性和函数用法方面感到困惑。这是一个很好...翻译 2018-05-16 23:50:13 · 1042 阅读 · 0 评论 -
Kotlin系列之Lambda表达式完全解析
简述: 今天带来的Kotlin浅谈系列的第六弹, 一起来聊下Kotlin中的lambda表达式。lambda表达式应该都不陌生,在Java8中引入的一个很重要的特性,将开发者从原来繁琐的语法中解放出来,可是很遗憾的是只有Java8版本才能使用。而Kotlin则弥补了这一问题,Kotlin中的lambda表达式与Java混合编程可以支持Java8以下的版本。那我们带着以下几个问题一起来看下Kotli...原创 2018-04-26 01:21:19 · 9097 阅读 · 2 评论 -
Kotlin系列之扩展函数
简述: 今天带来的是Kotlin浅谈系列的第五弹,这讲主要是讲利用Kotlin中的扩展函数特性让我们的代码变得更加简单和整洁。扩展函数是Kotlin语言中独有的新特性,利用它可以减少很多的样板代码,大大提高开发的效率;此外扩展函数的使用也是非常简单的。我会从以下几个方面阐述Kotlin中的扩展函数。1、为什么要使用Kotlin中的扩展函数?2、怎么去使用扩展函数和扩展属性?3、什么是扩展...原创 2018-04-17 00:22:18 · 18911 阅读 · 1 评论 -
Kotlin系列之顶层函数、中缀调用、解构声明
简述: 今天带来的是Kotlin浅谈系列的第四弹,这次主要聊下Kotlin独有的新特性,Java不具备的。Kotlin是一种增加许多新功能的语言,允许编写更简洁易读的代码,这使得我们的代码更易于维护。例如使用顶层函数和属性从此消除Java中的static、中缀表达式调用和解构声明等。1、为什么要用顶层函数替代Java中的static函数2、顶层函数和属性的基本使用3、顶层函数实质原理4...原创 2018-04-10 20:46:30 · 3007 阅读 · 7 评论 -
Kotlin系列之消除函数重载
标签: kotlin      消除函数重载 目录:一、函数重载的带来问题二、Kotlin中的函数命名参数三、Kotlin中的函数默认值参数四、@JvmOverloads注解解决Java调用Kotlin重载函数问题 五、需要注意的问题一、函数重载的带来问题1、遇到问题 无论是在Java或者C++中都有函数重载一说...原创 2018-03-09 22:08:55 · 5107 阅读 · 1 评论 -
Kotlin系列之变量和常量
标签: Kotlin      变量      属性     var与val区别      自定原创 2018-02-09 11:17:11 · 2790 阅读 · 2 评论 -
Kotlin系列之let、with、run、apply、also函数的使用
标签: Kotlin 常用技巧 目录:一、回调函数的Kotin的lambda的简化二、内联扩展函数之let三、内联函数之with四、内联扩展函数之run五、内联扩展函数之apply六、内联扩展函数之also七、let,with,run,apply,also函数区别简述:相比Java, Kotlin提供了不少高级语法特性。对于一个Kotlin的初学者来说原创 2017-12-12 21:59:53 · 227677 阅读 · 56 评论 -
[译]掌握Kotlin中的标准库函数: run、with、let、also和apply
翻译说明:原标题: Mastering Kotlin standard functions: run, with, let, also and apply原文地址: https://medium.com/@elye.project/mastering-kotlin-standard-functions-run-with-let-also-and-apply-9cd334b0ef84原文...翻译 2018-05-21 00:53:22 · 2278 阅读 · 0 评论