簡體   English   中英

Atom 是否打破 ruby to_s 覆蓋?

[英]Does Atom break ruby to_s override?

我想讓 put 返回 @value。 代碼如下:

class Tile
  def initialize(value, given=false)
    @value = value
    @given = given
  end

  def newValue(value)
    @value = value if @given == false
  end

  def to_s
    @value
  end

end

t = Tile.new(5)
t.newValue(6)
debugger
puts t

這導致僅打印 object id,沒有變量。

為什么? 這里出了什么問題? 它是 Atom 的東西嗎?

puts通過調用其to_s方法打印每個參數。 它還期望to_s方法返回一個字符串 如果to_s返回其他內容,它會忽略該值並打印對象的 class 和 id。

在您的示例中, @value是 integer。要修復您的代碼:

def to_s
  @value.to_s
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM