第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

組織Go界面的最佳方法

組織Go界面的最佳方法

Go
幕布斯6054654 2021-04-05 13:15:08
自從我用C ++編程以來(lái)已經(jīng)有很長(zhǎng)時(shí)間了,但是我知道在C ++中,這些類(lèi)被組織為.h文件和.cpp文件。許多其他語(yǔ)言也受益于將代碼分成目錄結(jié)構(gòu)內(nèi)的邏輯分組以改善組織。好吧,我現(xiàn)在嘗試學(xué)習(xí)Go,當(dāng)我接觸到接口時(shí),我正在閱讀Go for C ++ Programmers文章。這篇文章解釋了Go中的接口本質(zhì)上可以代替類(lèi),并展示了如何很好地設(shè)置它們。我試圖找出的是如何將接口組織到文件中?例如,接口應(yīng)該在一個(gè)文件中,而實(shí)現(xiàn)在另一個(gè)文件中嗎?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 }我的代碼在這里可能是錯(cuò)誤的,因?yàn)槲疫€不完全知道自己在做什么(如果我錯(cuò)了,請(qǐng)糾正我),但這是設(shè)置此代碼的最佳方法嗎?我很難理解如何在Go中組織代碼,因此非常感謝!
查看完整描述

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)有意義。


查看完整回答
反對(duì) 回復(fù) 2021-04-26
?
素胚勾勒不出你

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ì)信息。


查看完整回答
反對(duì) 回復(fù) 2021-04-26
  • 2 回答
  • 0 關(guān)注
  • 280 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)