前言
2020 春节,众所周知的原因在家。开始找出之前的书没读完的书依次kill time。
这波读的书很杂, 也比较快,担心很多信息没领悟清楚,先记一波笔记,回头翻阅。过程是读书, 所以内容更多的是关于理论/思考方式/概念相关的,不涉及具体的操作/实践/demo。
关于Dart语言
Dart语言,最开始知道其实是因为Angular 和Flutter, 对它本身没太详细了解过。
从语言的角度看,几个比较显著的特点如下:
- 纯面向对象的语言,(甚至包括最简单的数字 布尔型,函数也是对象,OO中的很多设计都是可以继续follow)
- 可选类型(类型在语法层面可选,类型对运行时语义没有影响)
接触一个新的语言,我们总会从这个语言的一些规则开始。
有些语法糖或者使用方法和之前的一样,有些长的不一样但本质一样,有些完全不一样。
故人
和以前在其他语言里面遇到的基本一样,还是熟悉的配方。
还有些和之前的一样的
- 基本的结构控制(for循环 if判断 swicth)
- Mixin ≈ Ruby中Mixin(或者其他类Lisp语言也有)
- yield和ES6
类似的但长得不一样
或者说只是换了个说法,看着不一样但本质做的事情基本一致,比如
- 基于库的封装 ≈ 前端中的package 后端的lib
- Future ≈ JS中Promise
- is操作符 ≈ JS中 instanceof
不一样或者比较特别的
- label (自动代码生成,不知道和元编程有木有啥关系)
- 反射与自省
- 异步处理中的isolate
整体感觉
整体看完全书,大概花了4小时,这一篇比较简略,主要是给自己后期看的。
Dart语言特性取了百家特点,如actor借鉴了Erlang, mixin借鉴了lisp语言... 当然受影响最大的可能还是smalltalk,书里面都详细说了历史,不赘述。
但从设计者的设计意图来看,还是是一门对程序员很友好的语言(和ruby的友好方向不一样),比如可选类型充分考虑了程序员的对待warning和error的习惯,语法上手容易兼顾Java程序员和JS程序员。
建议可以从angular和Flutter 入手试试。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。