亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

組織Go界面的最佳方法

組織Go界面的最佳方法

Go
幕布斯6054654 2021-04-05 13:15:08
自從我用C ++編程以來已經有很長時間了,但是我知道在C ++中,這些類被組織為.h文件和.cpp文件。許多其他語言也受益于將代碼分成目錄結構內的邏輯分組以改善組織。好吧,我現在嘗試學習Go,當我接觸到接口時,我正在閱讀Go for C ++ Programmers文章。這篇文章解釋了Go中的接口本質上可以代替類,并展示了如何很好地設置它們。我試圖找出的是如何將接口組織到文件中?例如,接口應該在一個文件中,而實現在另一個文件中嗎?myInterface.gotype myInterface interface {    get() int    set(i int)}myImplementation.gotype myType struct { i int }func (p *myType) set(i int) { p.i = i }func (p *myType) get() int { return p.i }我的代碼在這里可能是錯誤的,因為我還不完全知道自己在做什么(如果我錯了,請糾正我),但這是設置此代碼的最佳方法嗎?我很難理解如何在Go中組織代碼,因此非常感謝!
查看完整描述

2 回答

?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

無需將類型和接口放在單獨的文件中。從每個程序包導出的內容都很重要,您可以通過以大寫字母開頭的名稱來表示它們。在C&co。頭文件中的內容很重要,因為這就是“導入”(包含)的東西。在Go中,它是導入的包,無論其內容如何組織到不同的源文件中都無所謂(無論如何導入程序都不會看到)。

我個人的建議是避免創建不必要的文件。如果代碼相對較短,則將其保存在一個文件中。如果很長,則考慮將感覺很自然的部分分開(例如,如果您使用Java或C ++進行操作,則接口+相關函數可能會形成一個單獨的類)。不要僅僅為了將定義從代碼中分離而分離任何東西。即使在C語言中,它在Go語言中也沒有意義。


查看完整回答
反對 回復 2021-04-26
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

Go編程語言不是C ++,也不是C。像新語言一樣使用它。Go沒有等效于頭文件。它與C ++類的概念僅有松散的聯系。由于您不是專業的C ++程序員,因此請忽略Go For C ++ Programmers文章。

首先閱讀Go語言編程指南。然后閱讀Effective Go。瀏覽《 Go編程語言規范》,因此您將知道在哪里查找內容。

Go是開源的,因此請查看真實的Go軟件包文檔源代碼。

首先,請查看Go的作者編寫的time軟件包文檔源代碼。他們沒有為接口聲明和實現使用單獨的文件,所以為什么要這么做?正如您自己說的那樣,您尚不知道自己在做什么,那么為什么不從專家的榜樣開始呢?

Go編程語言發展的某些動機來自對創建一種比C更好,比C ++簡單得多的語言的渴望??紤]到Go的過程特性(通常類似于C),過程設計概念(如耦合和內聚)很有用。這些概念在將Gotime程序包劃分為多個源文件中很明顯。一些類設計概念也將很有用,但是請記住,Go不支持繼承。

正如Nicklaus Wirth在他的經典論文《逐步改進程序開發》中指出的那樣,程序的早期草稿很少是理想的,有時甚至是草率的。即使最終版本也很少是完美的。例如,圍棋作者僅在幾個月后就重寫了圍棋json包。

Go編程語言的設計和實現使其可以使用許多小功能。它傾向于簡潔的解決方案。當然,許多功能并未在包裝外部公開。函數大小或數量的任意限制很少能以任何語言顯示。

Go程序是通過將程序包鏈接在一起來構造的。一個包又由一個或多個源文件構造而成,這些源文件一起聲明了屬于該包的常量,類型,變量和函數,并且可以在同一包的所有文件中進行訪問。這些元素可以導出并在另一個包中使用。 軟件包,Go編程語言規范。

您想要第一個Go軟件包做什么?提出可以回答的特定問題,并提供詳細信息。


查看完整回答
反對 回復 2021-04-26
  • 2 回答
  • 0 關注
  • 279 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號