朱涛 · Kotlin 编程第一课
朱涛
Google 认证的 Kotlin、Android 开发者专家,博客“Kotlin Jetpack 实战”作者
963 人已学习
立即订阅
登录后,你可以任选4讲全文学习
推荐试读
换一换
02 | 面向对象:理解Kotlin设计者的良苦用心
04 | 实战:构建一个Kotlin版本的四则运算计算器
05 | object关键字:你到底有多少种用法?
课程目录
已更新 12 讲/共 37 讲
开篇词 (1讲)
开篇词 | 入门Kotlin有多容易,精通Kotlin就有多难
加餐篇 (1讲)
加餐一 | 初识Kotlin函数式编程
基础篇 (10讲)
01 | Kotlin基础语法:正式开启学习之旅
02 | 面向对象:理解Kotlin设计者的良苦用心
03 | Kotlin原理:编译器在幕后干了哪些“好事”?
04 | 实战:构建一个Kotlin版本的四则运算计算器
05 | object关键字:你到底有多少种用法?
06 | 扩展:你的能力边界到底在哪里?
07 | 高阶函数:为什么说函数是Kotlin的“一等公民”?
08 | 实战:用Kotlin写一个英语词频统计程序
09 | 委托:你为何总是被低估?
10 | 泛型:逆变or协变,傻傻分不清?
朱涛 · Kotlin 编程第一课
15
15
1.0x
00:00/00:00
登录|注册
开通超级会员可免费学习本课程,还可解锁海量内容免费学特权。

10 | 泛型:逆变or协变,傻傻分不清?

你好,我是朱涛。这节课我们来学习 Kotlin 的泛型(Generics),包括泛型基础、使用处型变、声明处型变以及星投影。
泛型,这个概念在很多编程语言里面都存在。在中大型软件开发当中,我们对泛型的使用也十分频繁,因为它可以让我们在不同类型之间复用相似的逻辑代码
不管是 Android 领域,还是后端领域,泛型在软件的架构当中都有着举足轻重的地位。只有透彻理解了泛型,我们才能理解各种设计模式,进而才可能设计出合理的软件架构。
然而,想要学好泛型却不是一件容易的事情。这是因为,泛型实在太抽象了。
我们都知道,程序其实是对真实世界的抽象,比如我们在前面实战课里写的计算器程序,现实生活当中就有计算器这个东西,我们想要在电脑里写一个抽象的计算器程序,也不会那么难理解,因为它和现实生活相关。可是泛型,它是对程序的抽象。程序本来就已经够抽象了,我们还要在它的基础上再做一次抽象。
这样一来,泛型和我们真实的物理世界差了两层抽象,因此,泛型对于我们人类来说,会显得尤为虚无缥缈。
不过,程序其实也是源自于生活的。所以在这节课里,我会尽量用生活中的例子来给你解释下 Kotlin 的泛型概念,让你能更直观、更立体地感知到泛型与现实生活的联系,然后,你也能够从这些生活的场景中,更深刻地理解并掌握 Kotlin 的泛型,从而为你将来构建大型软件打好基础。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
02 | 面向对象:理解Kotlin设计者的良苦用心
04 | 实战:构建一个Kotlin版本的四则运算计算器
05 | object关键字:你到底有多少种用法?
07 | 高阶函数:为什么说函数是Kotlin的“一等公民”?
09 | 委托:你为何总是被低估?
10 | 泛型:逆变or协变,傻傻分不清?
开通超级会员免费畅看本课程
开通会员
该文章仅可免费阅读部分内容,如需阅读完整文章,请开通超级会员或单独购买本课程。
登录 后留言

精选留言(2)

  • A Lonely Cat
    Java中的协变:<? extends T>
    Java中的逆变:<? super Object>
    Java中的“星投影”:<?>
    2022-01-19
  • $Kotlin
    声明处型变无法支持又有in又有out,只能在使用处根据情况型变。
    2022-01-19
收起评论
2
返回
顶部