在Kotlin中创建DSL,一般主要使用下面3个特性:
-
扩展函数、扩展属性
-
带接受者的Lambda表达式
-
invoke 函数调用约定
其实就是要 重写invoke()
下面来创建一个给定文件名返回文件中每行文本字符串的流式API,代码风格是下面这样的:
fun main(args: Array) {
val lines = “src/main/resources/data.txt”
.stream()
.buffered()
.reader(“utf-8”)
.readLines()
lines.forEach(::println)
}
//接下来来扩展函数:
fun String.stream() = FileInputStream(this)
fun FileInputStream.buffered() = BufferedInputStream(this)
fun InputStream.reader(charset: String) = InputStreamReader(this, charset)
fun Reader.readLines(): List {
val result = arrayListOf()
forEachLine {
result.add(it)
}
return result
}
我们来实现一个简单的在 Kotlin做 SQL操作的DSL
//创建一个学生类
data class Student(var name: String, var sex: String, var score: Int)
val students = listOf(
Student(“Rikka”,“M”,90),
Student(“xiaohu”,“F”,76),
Student(“uzi”,“M”,105),
Student(“karsa”,“F”,50)
)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
总结
首先是感觉自己的基础还是不够吧,大厂好像都喜欢问这些底层原理。
另外一部分原因在于资料也还没有看完,一面时凭借那份资料考前突击恶补个几天居然也能轻松应对(在这里还是要感谢那份资料,真的牛),于是自我感觉良好,资料就没有怎么深究下去了。
之前的准备只涉及了Java、Android、计网、数据结构与算法这些方面,面对面试官对其他基础课程的考察显得捉襟见肘。
下一步还是要查漏补缺,进行针对性复习。
最后的最后,那套资料这次一定要全部看完,是真的太全面了,各个知识点都涵盖了,几乎我面试遇到的所有问题的知识点这里面都有!希望大家不要犯和我一样的错误呀!!!一定要看完!
望大家不要犯和我一样的错误呀!!!一定要看完!**
[外链图片转存中…(img-JzHOCoK3-1711965122656)]
[外链图片转存中…(img-7lNLebvn-1711965122656)]
[外链图片转存中…(img-unBTGscZ-1711965122656)]