我有一个程序,基本上是反转一个字符串,用其他字符替换一些字符。但是,当我执行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,但打印不是很有用。

08-26 11:27