Kiedy typ powinien być strukturą zawierającą inny typ i kiedy powinien po prostu „rozszerzyć” (?) Ten typ?

Obecnie uczę się Go, wykonującproblemy z rosalindem (w zasadzie kilka bioinformatycznych kodowych kodów).

Obecnie reprezentuję nić DNA typu:

type DNAStrand struct {
    dna byte[]
}

Moim początkowym powodem było hermetyzowanie fragmentu bajtu, aby wiedzieć, że zawiera on tylko bajty reprezentujące nukleotydy:'A', 'C', 'G', 'T'. Zrozumiałem, że nie było to oczywiście gwarantowane, ponieważ mogłem po prostu zrobić:

DNAStrand{[]byte("foo bar")}

I nie ma już żadnej gwarancji, że moja nici dna zawiera tablicę bajtów zawierającą tylko elementy z tych czterech bajtów.

Ponieważ moja struktura zawiera tylko tablicę bajtów, czy lepiej / lepiej jest robić to:

type DNAStrand []byte

A może lepiej pozwolić typowi zawierać nici DNA? Czy są jakieś zasady, kiedy używać któregokolwiek z dwóch podejść?

questionAnswers(3)

yourAnswerToTheQuestion