簡體   English   中英

為什么我的to_s方法在ruby中返回0?

[英]Why does my to_s method return 0 in ruby?

我正在嘗試在ruby中構建一個相對簡單的應用程序。 但是,當在其上puts obj.to_s時,我無法使我的對象返回除0以外的任何0 我知道代碼的質量可能很差(不介意任何提示)。

請幫助!

class Docpart
  def Docpart.new(inputAsString,typeAsInteger)
@value = inputAsString
@type = typeAsInteger.to_i # 0 = title, 1 = text, 2 = equation (can't be done yet), 3 = table
  end

  def Docpart.to_s
return "Type is #{@type}, value is #{@value}"
  end
end

module Tests
  def Tests.test1()
filetree = Array.new(0) 
filetree.push( Docpart.new("Title",0))
filetree.each{|obj| puts obj.to_s}
return filetree[0]
  end
end

puts Tests.test1.to_s
gets.chomp

因為您定義的類方法to_s不是實例一。 在Ruby中編寫構造函數也有所不同。 您需要這樣編寫:

class Docpart
  def initialize(inputAsString,typeAsInteger)
    @value = inputAsString
    @type = typeAsInteger.to_i # 0 = title, 1 = text, 2 = equation (can't be done yet), 3 = table
  end

  def to_s
    "Type is #{@type}, value is #{@value}"
  end
end

module Tests
  def self.test1
    filetree = []
    filetree << Docpart.new("Title",0)

    filetree.each{ |obj| puts obj.to_s }

    filetree[0]
  end
end

puts Tests.test1.to_s
gets.chomp

PS閱讀有關Ruby的任何書籍以及Githubbersbbatsov這樣的任何樣式指南

暫無
暫無

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

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