2 回答

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊
無(wú)需將類(lèi)型和接口放在單獨(dú)的文件中。從每個(gè)程序包導(dǎo)出的內(nèi)容都很重要,您可以通過(guò)以大寫(xiě)字母開(kāi)頭的名稱來(lái)表示它們。在C&co。頭文件中的內(nèi)容很重要,因?yàn)檫@就是“導(dǎo)入”(包含)的東西。在Go中,它是導(dǎo)入的包,無(wú)論其內(nèi)容如何組織到不同的源文件中都無(wú)所謂(無(wú)論如何導(dǎo)入程序都不會(huì)看到)。
我個(gè)人的建議是避免創(chuàng)建不必要的文件。如果代碼相對(duì)較短,則將其保存在一個(gè)文件中。如果很長(zhǎng),則考慮將感覺(jué)很自然的部分分開(kāi)(例如,如果您使用Java或C ++進(jìn)行操作,則接口+相關(guān)函數(shù)可能會(huì)形成一個(gè)單獨(dú)的類(lèi))。不要僅僅為了將定義從代碼中分離而分離任何東西。即使在C語(yǔ)言中,它在Go語(yǔ)言中也沒(méi)有意義。

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
Go編程語(yǔ)言不是C ++,也不是C。像新語(yǔ)言一樣使用它。Go沒(méi)有等效于頭文件。它與C ++類(lèi)的概念僅有松散的聯(lián)系。由于您不是專業(yè)的C ++程序員,因此請(qǐng)忽略Go For C ++ Programmers文章。
首先閱讀Go語(yǔ)言編程指南。然后閱讀Effective Go。瀏覽《 Go編程語(yǔ)言規(guī)范》,因此您將知道在哪里查找內(nèi)容。
Go是開(kāi)源的,因此請(qǐng)查看真實(shí)的Go軟件包文檔和源代碼。
首先,請(qǐng)查看Go的作者編寫(xiě)的time
軟件包文檔和源代碼。他們沒(méi)有為接口聲明和實(shí)現(xiàn)使用單獨(dú)的文件,所以為什么要這么做?正如您自己說(shuō)的那樣,您尚不知道自己在做什么,那么為什么不從專家的榜樣開(kāi)始呢?
Go編程語(yǔ)言發(fā)展的某些動(dòng)機(jī)來(lái)自對(duì)創(chuàng)建一種比C更好,比C ++簡(jiǎn)單得多的語(yǔ)言的渴望。考慮到Go的過(guò)程特性(通常類(lèi)似于C),過(guò)程設(shè)計(jì)概念(如耦合和內(nèi)聚)很有用。這些概念在將Gotime
程序包劃分為多個(gè)源文件中很明顯。一些類(lèi)設(shè)計(jì)概念也將很有用,但是請(qǐng)記住,Go不支持繼承。
正如Nicklaus Wirth在他的經(jīng)典論文《逐步改進(jìn)程序開(kāi)發(fā)》中指出的那樣,程序的早期草稿很少是理想的,有時(shí)甚至是草率的。即使最終版本也很少是完美的。例如,圍棋作者僅在幾個(gè)月后就重寫(xiě)了圍棋json
包。
Go編程語(yǔ)言的設(shè)計(jì)和實(shí)現(xiàn)使其可以使用許多小功能。它傾向于簡(jiǎn)潔的解決方案。當(dāng)然,許多功能并未在包裝外部公開(kāi)。函數(shù)大小或數(shù)量的任意限制很少能以任何語(yǔ)言顯示。
Go程序是通過(guò)將程序包鏈接在一起來(lái)構(gòu)造的。一個(gè)包又由一個(gè)或多個(gè)源文件構(gòu)造而成,這些源文件一起聲明了屬于該包的常量,類(lèi)型,變量和函數(shù),并且可以在同一包的所有文件中進(jìn)行訪問(wèn)。這些元素可以導(dǎo)出并在另一個(gè)包中使用。 軟件包,Go編程語(yǔ)言規(guī)范。
您想要第一個(gè)Go軟件包做什么?提出可以回答的特定問(wèn)題,并提供詳細(xì)信息。
- 2 回答
- 0 關(guān)注
- 280 瀏覽
添加回答
舉報(bào)