我有一个程序,基本上是反转一个字符串,用其他字符替换一些字符。但是,当我执行puts dna1时,它会给出这个值:DNA:0x007fdb4214a918
它应该给出的值是attgcc。
代码如下:
class DNA
def initialize (nucleotide)
@nucleotide = nucleotide
end
def reverse_complement()
puts nucleotide.reverse.tr("ATCG", "TAGC")
end
protected
attr_reader :nucleotide
end
dna1 = DNA.new("ATTGCC")
puts dna1.reverse_complement
puts dna1
puts dna2 = dna1.reverse_complement
最佳答案
# first you have
# ATTGCC
# then you reverse
# CCGTTA
# then you substitute
# CCGTTA
# A:T, T:A, C:G, G:C
# GGCAAT
它完全按照你的要求做了。
现在,你还有一个问题。在
#puts
中返回reverse_complement,
的结果,因此从不将计算值赋给dna2
另外,将实例对象分配给dna1
,但打印不是很有用。