当前位置:Shooter-GamesGames

设计字体【练:tǐ】创意

2025-03-22 15:53:27Shooter-GamesGames

C/C 的人转Go都说很爽,Java转Go的人,觉得有时候写的很别扭,为啥?Go 和 Java 都是 C 系语言,语法方面,存在很多相似的地方。Go 语言从 C 语言继承了很多,同时也抛弃了不少,改进了不少

C/C 的人转Go都说很爽,Java转Go的人,觉得有时候写的很别扭,为啥?

Go 和 Java 都是 C 系语言,语法方面,存在很多相似的地方。Go 语言从 C 语言继承了很多,同时也抛弃了不少,改进了不少。

澳门金沙

Go 从 C 继承了哪些重要特性,同时改进了哪些?

Go 跟 C 语言一样,语法足够简单。一些基础的【pinyin:de】语法(读:fǎ),跟其他 C 系语言类似,从 C 继承了下来。和其他很多 C 系语言不一样的地方是,Go 继承了 struct,而且,不像 C /Java,还额外提供 class。所以 C 语言的人,写 Go 会有很亲切感。

更重(pinyin:zhòng)要的是,Go 对于 C 语言做了很多改进,而且【拼音:qiě】这些改进很多由于历史原因导致的,作为一门全新的语言,没有历史包袱,完全可以在设计上做出改进。主(pinyin:zhǔ)要的改进有:

1. 跟 C 一样有指针,但不允许进行指针运算,提升了安全性和易用性,很多 C 语言的开发(繁:發)者,对(duì)指针是有点头疼的,但接触 Go,会发现很容易使用指针;

2. 有垃[pinyin:lā]圾回收机制,从繁琐易错的内存分配和释放中解脱出来;

3. 在 struct(类型)的基础上,引[pinyin:yǐn]入方法的概念,相比《练:bǐ》 C 语言更利(练:lì)于结构化和管理;

4. 更高世界杯级的数据结构原始支持,比如动态数[繁体:數]组(slice)、string、map 等;

5. 丰富的标《繁:標》准库支持,比如 Go 对于网络编{繁:編}程,标准库有了很大的支持,写起来会很简单,相对来说 C 使用第三方库,易用性xìng 也差一些;

6. 澳门新葡京一定程度上支持面向对象(xiàng)编程;

7. 强大(练:dà)的工具链,编译速度超级快;

8. import 机制改进(读:jìn);

9. 澳门永利类{繁体:類}型定义避免歧义,比如 `var p, q #2Aint`;

10. 更【拼音:gèng】强大的 IDE 支持;

极速赛车/北京赛车

11. 更强大、易用的{pinyin:de}并发支持;

...

澳门巴黎人

以上种种,会让 C 语言的开(kāi)发者爱上 Go 语言。

澳门永利

对于(繁体:於) C ,因为其复杂性,我想面对 Go 这样简单澳门威尼斯人、性能不错、C 系的语言,应该没有免疫力吧~

Java 为什么有时候会觉得 Go 别扭?

Java 虽然也是 C 系语言,但更多是面向对象的功能。很多设计模式的(de)书,都是用 Java 语言来描述的。而 Go 语言,并非纯面向《繁:嚮》对象,只是一定程度上,支持了部分面向对象的特性,不少面向对象的功能缺失,这会让习惯 Java 的开发者感gǎn 觉别扭。

1. 没有类型层[繁体:層]次

2. 接(拼音:jiē)口隐式实现

3. 没有真正意义《繁:義》的继承,因此也没有基于类型继承的多态

4. 没有方法重载,而且还没有泛《繁体:汎》型

5. 可亚博体育见性问[繁:問]题

6. 没有 Spring 这样一统天下的框架

...

另外,Go 里面的一{pinyin:yī}些特性,Java 开发者可能也不太习惯,比如:有指针、类型足够细分(比(pinyin:bǐ)如各种 int)等。

我认[繁:認]为还有一个很重要的是,Go 相对于 Java,对计算机底层基础的知识要求会更高,这会让(繁:讓)一些人感觉不适应。

但我还是要说一句,Java 开发者们,Go 还是值得你《读:nǐ》学习的。这里附上之前回复的一个{练:gè}问答:《如何优雅得向Java程序员介绍go语言?》https://www.wukong.com/question/6681852965965267212/

开云体育

总结

其实很多东西还是习惯问题,但有时候,我们需要尝试打破习惯,用另外的视角看待这个世界。对于编程语言来说,我们在使用一门语言时,要慢慢学会用该语言的方式来思考、解决问题,虽然这个过程可能是比较痛苦,但这是锻炼自己思维、提升自己很好地方式。

本文链接:http://10.21taiyang.com/Shooter-GamesGames/12642297.html
设计字体【练:tǐ】创意转载请注明出处来源