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

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

一個(gè)類型何時(shí)應(yīng)為包含另一個(gè)類型的結(jié)構(gòu),何時(shí)應(yīng)僅“擴(kuò)展”(?)該類型?

一個(gè)類型何時(shí)應(yīng)為包含另一個(gè)類型的結(jié)構(gòu),何時(shí)應(yīng)僅“擴(kuò)展”(?)該類型?

Go
慕工程0101907 2021-05-07 14:19:01
我目前正在通過處理rosalind問題(基本上是一堆與生物信息學(xué)相關(guān)的代碼katas)來學(xué)習(xí)Go 。我目前代表的是一種類型的DNA鏈:type DNAStrand struct {    dna byte[]}我最初的原因是封裝字節(jié)片,所以我知道它只包含代表核苷酸的字節(jié):'A', 'C', 'G', 'T'。我意識(shí)到這顯然沒有被保證,因?yàn)槲铱梢院唵蔚刈龅竭@一點(diǎn):DNAStrand{[]byte("foo bar")}而且,不再保證我的dna鏈包含一個(gè)字節(jié)數(shù)組,其中只有這四個(gè)字節(jié)中的元素。由于我的結(jié)構(gòu)僅包含一個(gè)字節(jié)數(shù)組,因此這樣做是更好/更理想的方法:type DNAStrand []byte還是讓該類型包含dna鏈更好?是否有使用任何兩種方法的經(jīng)驗(yàn)法則?
查看完整描述

3 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊

具有零字段的結(jié)構(gòu)很方便。具有許多領(lǐng)域的結(jié)構(gòu)更加方便。僅具有一個(gè)字段的結(jié)構(gòu)有點(diǎn)特殊,即使在“野外”經(jīng)常看到它們,我也想不出在哪里使用它們的合理“好”案例。我,一個(gè),不要使用它們。

無論如何,如果您真的真的需要更嚴(yán)格/更安全的DNAStrand切片內(nèi)容安全性,那么可以使用單個(gè)字段結(jié)構(gòu)并為此/此類命名類型定義參數(shù)檢查設(shè)置方法。

在那種情況下,如果以后在其他軟件包中使用該定義,則無法使用軟件包unsafe進(jìn)行模運(yùn)算來規(guī)避檢查并獲得與您的DNAStrand{[]byte("foo bar")}示例相同的結(jié)果。


查看完整回答
反對 回復(fù) 2021-05-31
?
白板的微信

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊

以您的特定示例為例,我可能會(huì)執(zhí)行以下操作:


type neucleotide char // unexported type users can't construct their own.


type DNAStrand []neucleotide // because users can't construct their own

                             // nucleotides they also can't construct their

                             // own DNAStrands.


const (

  // These are exported values so they can use these nucleotides to construct a

  // DNAStrand with.

  A nucleotide = 'A'

  C nucleotide = 'C'

  G nudleotide = 'G'

  T nucleotide = 'T'

)


// This function allows them to actually construct a DNAstrand with a list of

//  nucleotides from the constants above.

func New(nts ...nucleotide) DNAStrand {

    return nts

}

由于不輸出核苷酸類型,因此用戶無法構(gòu)建自己的核苷酸。您在導(dǎo)出的const中提供了它們的唯一允許實(shí)例,因此沒有用戶可以提供自己的新核苷酸。


查看完整回答
反對 回復(fù) 2021-05-31
  • 3 回答
  • 0 關(guān)注
  • 225 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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