Dart 开发闲话Flutter和Dart程序员

闲话Dart精髓语法6--泛型篇

2018-04-30  本文已影响103人  西出玉门东望长安

闲话Dart精髓语法5--类与对象篇 - 简书

Dart Logo

好了, 各位小伙伴们, 不知不觉我们已进入到第6篇. 这篇里我们一起来看一下Dart里的泛型. 

好了, 分隔线后我们进入正题. 


Generics:

    a. Using collection literals.用<>来标注类型. 都是一样一样的.

    b. 泛型集合和所含的type. 重要的事情戳三遍!!! 这个非常要意思, 在Dart中, 泛型是reified. 这个和Kotlin是一样的. 但是Java就不一样了. Java是erasure的. 区别是什么呢? 在Dart里, 泛型是runtime的. 就是说我们在runtime的时候, 泛型是跟着list携带的. 而Java则不同, 在runtime时, list仍然是list, 然而所携带的泛型却被擦除了. 举例如下, Dart可以用以下的方法来查list是不是List<String>, 而Java则不可以. 因此Java并不能调用Kotlin的inline-reified. 额, 扯远了.

    c. 限定泛型. 我们在define一个泛型的时候, 可以限定这个泛型继承于某一个类型.


好了, 今天就到这里了. 与Java相比, Dart里的泛型使用并没有太大的区别. 关键是注意List可以在runtime携带type. 

下一篇就是我们这个系列的最后一篇了. 

欧了, 谢谢观赏, 大家加油!

闲话Dart精髓语法7--其他篇 - 简书

上一篇下一篇

猜你喜欢

热点阅读