为什么不能在ruby中对一个实例两次使用相同的方法?

编号316

我有一个程序,该程序基本上使用一种称为reverse_complement的方法来反转字符串并将某些字符替换为其他字符。但是,如果我在同一实例中两次使用该方法,则会给我一个未定义的错误。所以,把dna1.reverse_complement.reverse_complement == dna1.nucleotide应该给我一个真实的值。但是,它给出了未定义的方法错误。

class DNA
  attr_reader :nucleotide

  def initialize (nucleotide)
     @nucleotide = nucleotide
  end
  def reverse_complement()
    @nucleotide.reverse.tr("ATCG", "TAGC")
  end

end
dna1 = DNA.new("ATTGCC")
puts dna1.reverse_complement

puts dna1.nucleotide

puts dna2 = dna1.reverse_complement


puts dna1.reverse_complement.reverse_complement == dna1.nucleotide
冰津

这样就足够了吗:

class DNA < String
  def reverse_complement
    reverse.tr("ATCG", "TAGC")
  end
end

dna1 = DNA.new("ATTGCC")
puts dna1
# ATTGCC
puts dna1.reverse_complement 
# GGCAAT
puts dna1.reverse_complement.reverse_complement == dna1
# true

笔记

def reverse_complement
  reverse.tr("ATCG", "TAGC")
end

可以写成:

def reverse_complement
  self.reverse.tr("ATCG", "TAGC")
end

self当前对象在哪里在上面的示例中,selfisdna1是DNA的一个实例。


警告:从核心类继承是一个坏主意。如果OP拒绝接受此答案,则该答案将被删除。有关从核心类继承的更多详细信息,请参见链接

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我不能在同一张表中两次使用datepicker?

来自分类Dev

为什么我们不能在Java中实例化一个抽象类?

来自分类Dev

为什么不能在switch中定义两次变量?

来自分类Dev

Django如何在一个提交请求中两次保存相同的模型表单

来自分类Dev

在一个方法参数中两次const?

来自分类Dev

对同一个幻像实例使用两次createPage()

来自分类Dev

为什么我不能在不可哈希实例的一个显然可以哈希的方法上调用hash()?

来自分类Dev

为什么不能在两个dom元素中追加同一个孩子?

来自分类Dev

为什么不能在一个事务中创建和删除表两次?

来自分类Dev

具有相同名称的RLMObject子类不能在同一目标中包含两次

来自分类Dev

为什么我可以对一个切片进行两次迭代,而不能对一个向量进行迭代?

来自分类Dev

为什么我不能重复使用WebClient两次发出相同的请求?

来自分类Dev

当我从另一个类继承时,为什么必须两次使用__init __()?

来自分类Dev

pytest在一个功能中两次使用相同的灯具

来自分类Dev

为什么在调用一个函数后两次将此代码弹出到同一寄存器中两次?

来自分类Dev

为什么tidyverse :: map不能在一个小标题中同时使用两个列表?

来自分类Dev

为什么两个if语句不能在一个函数中起作用?

来自分类Dev

rxjs:为什么当另一个流使用take(1)时该流发出两次

来自分类Dev

为什么tidyverse :: map不能在一个小标题中同时使用两个列表?

来自分类Dev

为什么不能将相同的函数与不同类型的参数一起使用两次?

来自分类Dev

C#Metro,为什么不能在“段落”中添加两次“运行”?

来自分类Dev

为什么不能在一个函数中混合两个原语?

来自分类Dev

不能在Angular 2的单个HTML标签中两次使用相同的变量?

来自分类Dev

Laravel:我不能在同一个函数中使用请求对象两次

来自分类Dev

为什么这两个路由器不能在同一个网络中工作?

来自分类Dev

java中同一个线程调用start()方法两次,有时执行run()方法两次;内部究竟发生了什么?

来自分类Dev

为什么我不能在另一个类中调用静态方法?

来自分类Dev

为什么我不能在一个 post 请求中使用 res.json() 两次?

来自分类Dev

为什么我不能在 java 中调用 nextLine() 方法两次?

Related 相关文章

  1. 1

    为什么我不能在同一张表中两次使用datepicker?

  2. 2

    为什么我们不能在Java中实例化一个抽象类?

  3. 3

    为什么不能在switch中定义两次变量?

  4. 4

    Django如何在一个提交请求中两次保存相同的模型表单

  5. 5

    在一个方法参数中两次const?

  6. 6

    对同一个幻像实例使用两次createPage()

  7. 7

    为什么我不能在不可哈希实例的一个显然可以哈希的方法上调用hash()?

  8. 8

    为什么不能在两个dom元素中追加同一个孩子?

  9. 9

    为什么不能在一个事务中创建和删除表两次?

  10. 10

    具有相同名称的RLMObject子类不能在同一目标中包含两次

  11. 11

    为什么我可以对一个切片进行两次迭代,而不能对一个向量进行迭代?

  12. 12

    为什么我不能重复使用WebClient两次发出相同的请求?

  13. 13

    当我从另一个类继承时,为什么必须两次使用__init __()?

  14. 14

    pytest在一个功能中两次使用相同的灯具

  15. 15

    为什么在调用一个函数后两次将此代码弹出到同一寄存器中两次?

  16. 16

    为什么tidyverse :: map不能在一个小标题中同时使用两个列表?

  17. 17

    为什么两个if语句不能在一个函数中起作用?

  18. 18

    rxjs:为什么当另一个流使用take(1)时该流发出两次

  19. 19

    为什么tidyverse :: map不能在一个小标题中同时使用两个列表?

  20. 20

    为什么不能将相同的函数与不同类型的参数一起使用两次?

  21. 21

    C#Metro,为什么不能在“段落”中添加两次“运行”?

  22. 22

    为什么不能在一个函数中混合两个原语?

  23. 23

    不能在Angular 2的单个HTML标签中两次使用相同的变量?

  24. 24

    Laravel:我不能在同一个函数中使用请求对象两次

  25. 25

    为什么这两个路由器不能在同一个网络中工作?

  26. 26

    java中同一个线程调用start()方法两次,有时执行run()方法两次;内部究竟发生了什么?

  27. 27

    为什么我不能在另一个类中调用静态方法?

  28. 28

    为什么我不能在一个 post 请求中使用 res.json() 两次?

  29. 29

    为什么我不能在 java 中调用 nextLine() 方法两次?

热门标签

归档