C、GO和Java是三種不同的編程語言,它們各自有著不同的語法和特點(diǎn)献汗。下面是這三種語言的語法區(qū)別:
語言 | 定義變量區(qū)別 | 數(shù)組區(qū)別 | Map區(qū)別 | 控制流區(qū)別 | 函數(shù)區(qū)別 | 指針區(qū)別 | 異常處理區(qū)別 | 面向?qū)ο缶幊虆^(qū)別 | 并發(fā)編程區(qū)別 |
---|---|---|---|---|---|---|---|---|---|
C | 變量必須在使用之前聲明生巡,并且可以在任何位置進(jìn)行聲明。例如演顾,int x; 供搀。 |
數(shù)組是一組相同類型的元素,可以通過下標(biāo)訪問偶房。例如趁曼,int arr[5] = {1, 2, 3, 4, 5}; 。 |
沒有內(nèi)置的Map類型棕洋。 | C語言的控制流語句包括if-else挡闰、for、while掰盘、do-while摄悯、switch等。 | 函數(shù)必須在使用之前聲明愧捕,并且可以在任何位置進(jìn)行聲明奢驯。例如,int add(int a, int b) { return a + b; } 次绘。 |
指針是一種變量瘪阁,它存儲(chǔ)了另一個(gè)變量的地址。例如邮偎,int *p = &x; 管跺,其中& 是取地址運(yùn)算符。 |
C語言不支持異常處理禾进。 | C語言不支持面向?qū)ο缶幊獭?/td> | C語言不支持并發(fā)編程豁跑。 |
GO | 變量可以在使用之前或之后聲明,并且可以在任何位置進(jìn)行聲明泻云。例如艇拍,var x int; 或 x := 0; 。 |
數(shù)組是一組相同類型的元素宠纯,可以通過下標(biāo)訪問卸夕。例如,var arr [5]int = [5]int{1, 2, 3, 4, 5}; 婆瓜。 |
Map是一種鍵值對(duì)的數(shù)據(jù)結(jié)構(gòu)快集,可以用于存儲(chǔ)和檢索數(shù)據(jù)。例如勃救,var m map[string]int = make(map[string]int); 。 |
Go語言的控制流語句包括if-else治力、for蒙秒、switch等。 | 函數(shù)可以有多個(gè)返回值和參數(shù)宵统,可以使用指針作為參數(shù)和返回值晕讲,可以返回?cái)?shù)組覆获。例如,func add(a int, b int) (int, int) { return a + b, a - b; } 瓢省。 |
指針是一種變量弄息,它存儲(chǔ)了另一個(gè)變量的地址。例如勤婚,var p *int = &x; 摹量,其中& 是取地址運(yùn)算符。 |
Go語言使用panic 和recover 函數(shù)處理異常馒胆。 |
Go語言支持面向?qū)ο缶幊逃С疲菦]有類和繼承的概念,使用結(jié)構(gòu)體和接口實(shí)現(xiàn)面向?qū)ο缶幊獭?/td> | Go語言支持并發(fā)編程祝迂,使用goroutine和channel實(shí)現(xiàn)并發(fā)編程睦尽。 |
Java | 變量必須在使用之前聲明,并且必須在類型雳、方法或塊中進(jìn)行聲明当凡。例如,int x; 纠俭。 |
數(shù)組是一組相同類型的元素沿量,可以通過下標(biāo)訪問。例如柑晒,int[] arr = {1, 2, 3, 4, 5}; 欧瘪。 |
Map是一種鍵值對(duì)的數(shù)據(jù)結(jié)構(gòu),可以用于存儲(chǔ)和檢索數(shù)據(jù)匙赞。例如佛掖,Map<String, Integer> map = new HashMap<String, Integer>(); 。 |
Java的控制流語句包括if-else涌庭、for芥被、while、do-while坐榆、switch等拴魄。 | 函數(shù)可以有返回值和參數(shù),可以使用對(duì)象作為參數(shù)和返回值席镀,但是不能返回?cái)?shù)組匹中。例如,public int add(int a, int b) { return a + b; } 豪诲。 |
指針在Java中被稱為引用顶捷,它是一種變量,它存儲(chǔ)了另一個(gè)變量的地址屎篱。Java中的引用是自動(dòng)管理的服赎,因此不需要手動(dòng)分配或釋放內(nèi)存葵蒂。 | Java使用try , catch , finally 關(guān)鍵字處理異常。 |
(1) Golang與Java各方面使用對(duì)比(上) - 知乎 - 知乎專欄. https://zhuanlan.zhihu.com/p/361231998.
(2) Java和C的數(shù)組區(qū)別_java數(shù)組與c語言中的區(qū)別-CSDN博客. https://blog.csdn.net/qq_42913794/article/details/89077825.
(3) Go VS Java VS C# 語法對(duì)比 - 知乎 - 知乎專欄. https://zhuanlan.zhihu.com/p/466985923.
(4) Java編程之美-02. 基礎(chǔ)語法:從CPU角度看變量重虑、數(shù)組践付、類型、運(yùn)算缺厉、跳轉(zhuǎn)永高、函數(shù)等語法 - 知乎. https://zhuanlan.zhihu.com/p/637233454.
(5) golang與C語言相比最重要的改進(jìn)是什么? - 知乎. https://www.zhihu.com/question/325945059.