TestClass().randomOrDefault {
println(“由于随机产生的对象 和我们指定的不一样,启用备用对象”)
ObjectClass1(“备用的对象,大王五”, 99)
}
data class ObjectClass1(val name: String, val age: Int)
data class ObjectClass2(val name: String, val age: Int)
data class ObjectClass3(val name: String, val age: Int)
class TestClass {
// 所有的功能,都写在函数上
// 默认随机输出一个对象,如果此对象和指定的对象不一致,就启用备用对象,否则直接返回对象
inline fun randomOrDefault(defaultLambdaAction:() ->T) : T? {
val objList = listOf(
ObjectClass1(“obj1 tiger”, 18), ObjectClass2(“obj2 张三”, 38), ObjectClass3(“obj3 王美丽”, 28)
)
// 随机选择最后一个对象
val randomObj = objList.shuffled().last()
println(“随机产生的对象是:$randomObj”)
// 如果 it 生成的对象等于T的类型,就会走as T 直接返回了
return randomObj.takeIf { it is T } as T? // null as T null as T?
// 如果 it 随机产生的对象 不等于 T类型,就直接走下面的备用还节
?: defaultLambdaAction()
}
}
2、定义扩展函数
在kotlin 中,可扩展的函数有很多,下面举几个例子:
ObjectClass1(“张三”, 22).show()
ObjectClass1(“tiger”, 22).getInfo()
println(“tiger”.addExtAction(3))
// 增加扩展函数show()
fun ObjectClass1.show(){
println(“我是新增的show函数:name:
n
a
m
e
,
a
g
e
:
name, age:
name,age:age”)
}
// 增加扩展函数getInfo()
fun ObjectClass1.getInfo(){
println(“我是新增的getInfo函数:name:
n
a
m
e
,
a
g
e
:
name, age:
name,age:age”)
}
// 字符串 扩展
fun String.addExtAction(number: Int) = this + “@”.repeat(number)
data class ObjectClass1(val name: String, val age: Int)
3、可空类型函数扩展
“tiger”.outPutStringValue(“传null 就走这里”)
null.outPutStringValue(“传null 就走这里”)
// String 不可空的情况下,只能传值,在可空的情况下,可以传 null
// defaultValue 添加一个备用函数,在传值为 null 的情况下,返回 defaultValue 备用内容
fun String?.outPutStringValue(defaultValue: String){
println(this ?: defaultValue)
}
4、infix 关键字
infix 中缀表达式,可以简化代码。需要加 扩展函数才能使用哦
// 条件一:对第一个参数 O1.test() 函数扩展
// 条件二:需要在 括号(o2: o2)参数里面,传递一个参数
“tiger”.test(“18”)
“tiger” test (“18”)
123 test (“18”)
// map 自带的有中缀表达式哦
val mapOf = mapOf(“tiger” to 2)
println(mapOf)
infix fun
println(“中缀表达式第一个参数的内容是:$this”)
println(“中缀表达式第二个参数的内容是:$o2”)
}
5、变换函数 Map
// 原理:就是把 匿名函数 最后一行的返回值,加入到一个新的集合,新集合的泛型是R,并且返回集合
val listOf = listOf(“张三”, “王美丽”, “大漂亮”)
val map = listOf.map {
“[$it]”
}.map {
“你给啥,我都敢加 $it”
}
println(map)
6、变换函数 flatMap
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
最后
上面这些公司都是时下最受欢迎的互联网大厂,他们的职级、薪资、福利也都讲的差不多了,相信大家都是有梦想和野心的人,心里多少应该都有些想法。
也相信很多人也都在为即将到来的金九银十做准备,也有不少人的目标都是这些公司。
我这边有不少朋友都在这些厂工作,其中也有很多人担任过面试官,上面的资料也差不多都是从朋友那边打探来的。除了上面的信息,我这边还有这些大厂近年来的面试真题及解析,以及一些朋友出于兴趣和热爱一起整理的Android时下热门知识点的学习资料。
部分文件:
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长! * [外链图片转存中…(img-UJG05AJC-1712767127911)] [外链图片转存中…(img-Uj52JVqU-1712767127912)] [外链图片转存中…(img-SBjN0ErP-1712767127912)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长! [外链图片转存中…(img-zVOHtqgN-1712767127912)]
推荐链接
发表评论