最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

当前关注:C#、TS和Dart对比1:概述

来源:博客园

一、为什么要三门语言一起学?


(资料图片)

  • 多门语言一起学习,有利于提升语言学习的触类旁通能力。现代开发语言非常丰富,很多应用场景或问题的解决,需要多种语言配合,有了触类旁通的学习能力,当需要接触一门新语言时,上手会比较快。另外,由于不同语言的相似性,多种语言开发时,会经常短路错位,这里也算是一个快速查询的目录。

二、为什么选了C#、TS和Dart?

  • 完全基于实用主义。作为个人开发者和小微团队,基本上都需要全栈开发。而基于C#的.NET是后端的最优选之一,而前端框架使用过Blazor、WPF/MAUI、Vue、Flutter和小程序,所以选了C#、TS和Dart。

三、简单说一下C#、TS和Dart这三门语言?

  • C#是完全面向对象的强类型语言,对标的语言是Java,无论语法还是底层原理,都非常相似。性能以及语法特性上,C#是能够胜过Java的,但在使用的广泛度上,C#明显要弱于Java,尤其是在国内。两者都主要用于后端开发,但也都有涉及前端。而C#的前端框架非常丰富,包括MVC、Blazor、winform、WPF、MAUI等。 TS是JS的超级。
  • TS在JS原型对象的基础上,扩展了静态类型、类、接口、泛型等功能,使JS在开发环节具备了完全面向对象语言的特性,非常有利于构建大型应用。但在运行时,仍然是通过编译器将TS转译为JS执行,本质上还是JS。现代前端UI框架,如Vue、React等,都已全面转向TS(javascript的后端框架nodejs,也已支持TS)。
  • Dart结合了面向对象语言(如C#/Java)和JS的特性,如静态类型、类、泛型等,接近于C#/Java;而变量和函数又都是顶级成员(可以在类以外定义和使用),接近于JS。同时,Dart支持JIT和AOT两种编译模式,在开发阶段使用JIT,能有效提升开发效率(如Flutter的杀手锏-热重载),而在部署阶段,通过AOT编译为目标平台的机器码,包括了dart2native(原生平台)和dart2js(javascript)两种方式,兼顾了开发效率和运行性能。Dart目前主要用于Flutter跨平台前端UI框架,早期Dart作为JS的替代者出现,但现在可以说,它就是为Flutter而生的一门语言。

四、会有深入原理性的内容吗?

  • 比较少。一是怕讲不好;二是我认为掌握了使用,原理层面的东西大概就知道七七八八了,而剩下的20%,通过看不同的文章和案例,以及日后实际开发过程中,接触到不同的开发框架时,会一下顿悟。

五、目录:

1 概述

2 学习环境搭建

3变量和作用域

4 类型

4.1 类型概述

4.2基本类型:数值

4.3 基本类型:布尔

4.4 基本类型:字符/字符串

4.5集合类型

4.6枚举

4.7 结构体

5 函数/方法

5.1 函数的声明和调用

5.2 函数的返回值

5.3 函数的参数

5.4 函数表达式、委托和typedef

5.5 闭包和委托捕获

5.6 扩展方法

6 表达式、运算符和语句

6.1 表达式和字面量

6.2 运算符

6.3 特殊运算符

6.4运算符重载

6.5 判断和循环语句

7 类基础

7.1 类的声明和使用

7.2 静态类和实例类

7.3 类的成员

7.4 构造函数

7.5 访问修饰符

7.6 嵌套类

8 类高级

9 接口

10泛型

11 异常

12 异步

13 事件

14 常用库

14.1 字符串

14.2日期

14.3Math

14.4 RegExp

14.5JSON

14.6 迭代集合

14.7 文件操作

14.8 Web请求

15 其它

15.1 反射特性-C#

15.2 装饰器-TS

15.3 元数据-Dart

15.4 联合类型-TS

15.5 原型链-TS

15.6 并发isolate-Dart

15.7 索引器-C#

15.8 类型转换

15.9 多维数组

15.10 位移运算符

15.11 协变和逆变

15.12 ......

关键词: 基本类型 面向对象语言 主要用于