Ruby 方法不返回输出

Ruby 方法不返回输出,ruby,Ruby,当我为任意n写“puts get__rarity(n)”时,为什么这个方法不返回任何东西 def get_rarity(float) if float.between?(1, 0.4) "common" elsif float.between?(0.4, 0.2) "uncommon" elsif float.between?(0.2, 0.15) "rare"

当我为任意n写“puts get__rarity(n)”时,为什么这个方法不返回任何东西

    def get_rarity(float)
        if float.between?(1, 0.4) 
          "common"
        elsif float.between?(0.4, 0.2) 
          "uncommon"
        elsif float.between?(0.2, 0.15) 
          "rare"
        elsif float.between?(0.15, 0.14) 
          "epic"
        elsif float.between?(0.14, 0.139) 
          "legendary"   
        end     
    end

有一个输入错误
put get\u ratity(n)
。它应该是
puts get\u rarity(n)

将代码编写为:

def get_rarity(float)
  if float.between?(0.4, 1) # see the change..(min, max)
    "common"
  elsif float.between?(0.2, 0.4) # see the change..(min, max)
    "uncommon"
  elsif float.between?(0.15, 0.2) # see the change..(min, max)
    "rare"
  elsif float.between?(0.14, 0.15) # see the change..(min, max)
    "epic"
  elsif float.between?(0.139, 0.14) # see the change..(min, max)
    "legendary"   
  end     
end

读博士。这意味着方法
#between?
的第一个参数应该是min,第二个参数应该是max

您确定float始终在1..0.139范围内吗? 并在调用
介于?
之间时将较小的值放在第一位

试试这个:

def get_rarity(float)
    if float.between?(0.4, 1) 
      "common"
    elsif float.between?(0.2, 0.4) 
      "uncommon"
    elsif float.between?(0.15, 0.2) 
      "rare"
    elsif float.between?(0.14, 0.15) 
      "epic"
    elsif float.between?(0.139, 0.14) 
      "legendary"
    else
      "undefined"   
    end     
end 

只是问题中的一个输入错误,不是我实际编辑的代码