我目前正在通过解决rosalind 问题(基本上是一堆与生物信息学相关的代码 katas)来学习 Go。
我目前正在代表具有以下类型的 DNA 链:
type DNAStrand struct {
dna byte[]
}
我最初的原因是封装字节切片,所以我知道它只包含代表核苷酸的字节:'A', 'C', 'G', 'T'
。我意识到这显然没有保证,因为我可以简单地做:
DNAStrand{[]byte("foo bar")}
并且不再保证我的 dna 链包含一个字节数组,其中仅包含这四个字节中的元素。
由于我的结构仅包含一个字节数组,这样做是否更好/更符合思想:
type DNAStrand []byte
还是让类型包含 dna 链更好?对于何时使用这两种方法中的任何一种,是否有任何经验法则?