為什麼go語言語法要這樣設計呢

時間 2021-06-01 11:57:20

1樓:linfn

golang 的設計者認為這樣在表達複雜型別時具有更好的可讀性禁止隱式型別轉換有助於減少 bug

用 while/do-while 會增加 golang 的關鍵字, 這違背 golang 25 個關鍵的賣點

在 golang 中, i++ 是乙個語句而不是乙個表示式, 區分字首自增和字尾自增沒有意義; 之所以設計為語句也是為了減少你犯錯的可能性.

2樓:番茄.go

都在一定程度上簡化了語言。

1、變數定義時把變數型別放後面

可以避免C中的一些歧義,如下,b是int型。

int*a,

b;還有一些定義更加好理解,比如map

vara

map[

string

]int

2、int型別和bool型別不相容

C中是沒有bool型別的,出現的BOOL一般是int型的巨集定義。區分int和bool型別可以在編譯時做檢查,防止出現不必要的型別錯誤。

3、取消了while和do-while迴圈只保留了for,並對for進行了很大的擴充套件。

4、取消了字首自增自檢運算子

在C類語言中,++i和i++是非常不同的操作,前者自增並返回自己的值,後者自增並返回原來的值。經常有人會混淆。

請問為什麼Go要設計channel,channel能完成的事,用sync包中的工具是不是也能完成?

傑林修 其實大部分語言能做的事,彙編都能完成呢 要設計chan,明顯就是語言的設計場景會大量使用到chan。不光光是chan,還有對應的select語法呢,兩個放一起就大概能知道設計的意圖是什麼。大家都是圖靈完備的語言,能不能完成什麼不重要。怎麼更快更穩定心智負擔更小的解決目標場景才重要。 蔣甬杭 ...

為什麼GO語言的效能還不如C

你不能用這麼粗暴的用 for 迴圈來測試效能,然後下論斷,而且你 Golang 和 C 的版本 執行環境都沒有說,Golang 這幾年提公升很大的。最後.題主建立 map 的時候都沒有設定 capacity,建議設定一下再看,go 這樣不設定的話挺影響效能的。 gao xinge 雖說比較語言效能招...

Go 語言陣列被設計成值型別有什麼用呢?

青青青 Go 語言提供了陣列型別的資料結構。陣列是具有相同唯一型別的一組已編號且長度固定的資料項序列,這種型別可以是任意的原始型別例如整型 字串或者自定義型別。相對於去宣告number0,number1,number99的變數,使用陣列形式numbers 0 numbers 1 numbers 99...