回覆列表
  • 1 # 星星是猩猩

    詬病排行:

    1. 包管理:

    沒有統一的包管理器;

    沒有中心倉庫,大家的包都在github上,所以引用包多是: import github.com/XXXX/abcd ,這裡的XXXX多是人名,字母大小寫不統一,格式各異,關鍵還不符合英文語意,很醜陋。

    2. 記憶體管理粗糙:經常看到fmt.xxx導致記憶體佔用太多,反射導致記憶體佔用太多的抱怨。

    3. interface陣列到一個已知型別陣列不能強轉,需要再開闢一塊記憶體一個一個轉過去。

  • 2 # 知識時刻

    1.右大括號不允許換行,否則編譯報錯;不允許包含未使用的包(設定vscode工具,儲存檔案時可自動修改格式)

    2.不允許有未使用的變數(vscode工具無法解決)

    3.錯誤處理原始,雖然引入了defer、panic、recover處理出錯後的邏輯,函式可以返回多個值,但基本依靠返回錯誤是否為空來判斷函式是否執行成功,if語句較多,比較繁瑣,程式沒有java美觀。(官方解釋:提供了多個返回值,處理錯誤方便,如加入異常機制會要求記住一些常見異常,例如IOException,go的錯誤Error型別較統一方便,還有panic,recover,defer機制)

    4.package main的變數不能被其他package引用(有時不方便)

    5.[]interface{}不支援下標操作

    6.struct沒有構造和析構,一些資源申請和釋放動作不太方便

    7.變數和函式使用大小寫來區分是否對包外可見

    8.仍然保留C/C++的指標操作,取地址&,取值*

    9.沒有泛型 (官方解釋:go是伺服器語言,主要特點是可擴充套件,可讀和高併發性。加入泛型會帶來run-time和型別體系複雜度提高的代價,且可用空的interface 替代,現在go越來越成熟,可以考慮在go2版本中加入泛型這些特性)

  • 3 # 工號1024

    放棄Go的原因:

    作為函式程式設計的忠實擁護者(只要有機會就在JVM上使用Clojure或Scala),Golang不是一種功能程式語言,所以一定說golang有啥問題,這個可以有?!缺少一些高階程式設計構造,我特別想念泛型程式設計,如果你感覺還不夠,看最後一點->type system!非常笨重、充滿限制、感覺很陳舊——golang具有我使用的過的程式語言中最糟糕的型別系統,這是我和身邊朋友僅將Go用於小型實用程式,而不能忍受應用在大型專案進行程式設計的主要原因。

    另外,在谷歌,golang主要是被Site Reliability Engineering的人青睞,也有些小組嘗試用Golang編寫新程式碼,從支援上而言,它的確是一流的語言......但是!有許多在C ++ 和Python方面經驗豐富的小組,對Golang沒什麼興趣(你應該從其它回答裡看到些端倪)——

    garbage collection?如果你不瞭解你面對的物件的生命週期,那就真的就只是“垃圾”;Goroutines?我們已經有C ++的輕量級執行緒;簡潔?為什麼要放棄C++和Python中現成而又如此豐富的表現力?

  • 4 # 漂流De風

    沒有成熟的 IoC 應用庫

    雖然能搜尋到幾個,但熱度不高,一些開源的產品程式設計裡也沒人用到 IoC

    Java,c#,php 轉過來的,感覺就像沒有趁手的兵器

  • 5 # 春風笑意隨享錄

    1、有gc

    2、宣傳效能很好,實際遠不如c c++ rust

    3、語法不直觀

  • 中秋節和大豐收的關聯?
  • 點菸器正確使用方法是怎樣的呢?