• Paul Shan
    2022-03-20
    函数式编程要求函数是一等公民,如果某些函数不能用类型描述(例如Java中的返回为void 函数),后续的赋值,参数传递就很困难,成为一等公民就成为泡影!Kotlin中Nothing,Unit 和 Any?让所有函数的返回都有固定类型,为函数式编程奠定基础。函数的返回值必然来自于某个表达式,这也要求表达式都有固定类型。表达式是函数编程的组成模块,是串联各个函数的纽带,也是决定函数返回值的重要一环。

    作者回复: 很棒的答案,推荐给大家!

    
    19
  • 20220106
    2022-01-26
    学了汉字以后,如果不懂得写作的技巧,是写不出优美的文章的。 ——理解作者想表达什么,但是写作技巧和文章优美与否不直接挂钩,除非把模板的文字当作优美。

    作者回复: 嗯,确实表达的不够到位。我本意是想表达:鲁迅、莫言之类的文学作家,他们和我们都一样只是学了汉字,那他们为什么可以写出那么好的文章呢?他们和普通人的差异肯定不只是“写作技巧”那么简单,但如果我将其称为“写作思维”呢好像又有点奇怪。 也许“文学素养”更合适吧。

    共 2 条评论
    5
  • better
    2022-01-26
    函数式,关注的是计算的输入输出,而表达式可以有输出,2者可以结合起来;也就类似: 函数式(函数式(表达式)表达式),某些情况,反过来也可以 表达式=函数式(表达式) 实现相互补充,不知道这样理解是否 ok

    作者回复: “相互补充”这四个字总结很到位,赞!

    
    4
  • PoPlus
    2022-01-28
    这节很受用,原来 Unit 类是 Kotlin 实现「表达式思维」的重要支撑。之前一直觉得 Unit 只不过是 void 的 Kotlin 版本罢了,没想那么多。

    作者回复: 是的,理解Unit并不难,难的是理解它背后的设计意图。

    
    3
  • Paul Shan
    2022-03-20
    Kotlin能转成表达式语句基本都做了表达式版本,但是赋值语句照理说应该很容易转成表达式的,在某些情况也能起到简化的作用,例如把赋值表达式传给if,在if里面使用赋值创建的变量,但是Kotlin没有做,请问老师,这背后有什么考量吗?多谢

    作者回复: 就我所知,Kotlin 官方非常推崇简洁语法,不希望引入过多复杂的语法进来。也许是这个原因吧。

    
    1
  • Barry
    2022-03-02
    我理解kotlin建立的类型系统,才能实现表达式编程方式,进而可以实现函数式编程,确实提升了编程效率

    作者回复: 很棒!

    
    1
  • Renext
    2022-02-08
    Nothing泛型星投影的时候的应用,后面会有讲解吗

    作者回复: 这个目前没有计划,这个问题我会先记下来,看看后续实战课中能不能应用进来,但不敢保证哈。 其实,这一点Kotlin官方文档已经介绍的比较清楚了,只要你理解了Nothing,剩下的应该就不难的。 参考这里:https://kotlinlang.org/docs/generics.html#star-projections

    
    1
  • dadada
    2022-01-26
    能不能快点更新呀?主要为的就是协程及后面的东西,等了这么久了协程还没有更新。。

    作者回复: 放心,协程部分肯定是跑不掉的哈,先容我把基础部分讲明白,照顾一下基础不好的同学。

    共 4 条评论
    1
  • vox
    2022-04-25
    这一章很棒

    作者回复: 加油~

    
    
  • Shanks-王冲
    2022-03-31
    涛哥,我分享一个疑惑:Any与Any?描述成「虽是子类,但没有继承关系」,可以描述成Any是Any?的子类型(sub type)嘛?当然,这很容易让人联想到泛型;不过「子类型」与「继承」,在我学习Java时,有时候让人觉得很微妙:)

    作者回复: 可以这么理解的,毕竟“子类”与“继承”并非等价。

    
    