Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 基于用户输入循环创建_Ruby_Algorithm_Function_Irb - Fatal编程技术网

Ruby 基于用户输入循环创建

Ruby 基于用户输入循环创建,ruby,algorithm,function,irb,Ruby,Algorithm,Function,Irb,我正在创建一个算法,根据杯子半径的长度对杯子进行排序。输入将是 2 red 10 green 7 输出为 green red 我的方法是,第一个输入是2,我必须创建2个具有颜色和半径属性的杯子。如图所示: class Cup attr_accessor :colour, :radius def initialize(colour, radius) @colour = "" @radius = 0 end d

我正在创建一个算法,根据杯子半径的长度对杯子进行排序。输入将是

2  
red 10       
green 7
输出为

green
red
我的方法是,第一个输入是2,我必须创建2个具有颜色和半径属性的杯子。如图所示:

class Cup
    attr_accessor :colour, :radius

    def initialize(colour, radius)
        @colour = ""
        @radius = 0
    end

    def number_of_cups
        puts "How many cups are there?".chomp
        gets.times do 
            Cup.new("", 0)
        end
    end
end

当我尝试访问Cup.number of_cups时,我收到一个
未定义的方法
错误。我的问题是,例如,如果我输入
3
,那么我将拥有
3
新的杯子对象

您需要使用ruby清除basic

class Cup
    attr_accessor :colour, :radius

    def initialize(colour='No Colour', radius=0)
        @colour = colour
        @radius = radius
    end
end

puts "How many cups are there?"
cups = []
gets.to_i.times do |n| 
  puts "Enter Cup-#{n+1} colour & radius:"
  c = gets.chomp
  r = gets.to_i
  cups << Cup.new(c, r)
end

sorted_cups = cups.sort_by { |x| x.radius }
class杯
属性存取器:颜色,:半径
def初始化(颜色=无颜色,半径=0)
@颜色
@半径=半径
结束
结束
放上“有多少个杯子?”
杯子=[]
得到的时间是多少
将“输入杯-#{n+1}颜色和半径:”
c=get.chomp
r=到达

cups您需要用ruby清除basic

class Cup
    attr_accessor :colour, :radius

    def initialize(colour='No Colour', radius=0)
        @colour = colour
        @radius = radius
    end
end

puts "How many cups are there?"
cups = []
gets.to_i.times do |n| 
  puts "Enter Cup-#{n+1} colour & radius:"
  c = gets.chomp
  r = gets.to_i
  cups << Cup.new(c, r)
end

sorted_cups = cups.sort_by { |x| x.radius }
class杯
属性存取器:颜色,:半径
def初始化(颜色=无颜色,半径=0)
@颜色
@半径=半径
结束
结束
放上“有多少个杯子?”
杯子=[]
得到的时间是多少
将“输入杯-#{n+1}颜色和半径:”
c=get.chomp
r=到达

cups在硬编码字符串上调用
chomp
,没有任何意义。另外,
gets
接收回一个字符串,因此do
gets.to_i.times
。另外,请下次把整个错误信息都发出来。是的,你完全正确。谢谢你的帮助!虽然现在杯子并没有真正被创建,但这个循环是一个误报。当我键入Cup.all时,我得到了错误
回溯(最后一次调用):2:from/Users/WTFwerewolf/.rvm/rubies/ruby-2.5.1/bin/irb:11:in
'1:from(irb):3 nomethodorror(Cup:Class的未定义方法
all)
,这可能是因为(惊讶)类
Cup
没有定义方法
all
?没有魔法。啊,我以为所有的
都是Ruby自动理解的东西。以前在Rails控制台中工作过。将致力于分离下一个输入行。谢谢你的帮助,尽管我真的很感激!对硬编码字符串调用
chomp
,没有任何意义。另外,
gets
接收回一个字符串,因此do
gets.to_i.times
。另外,请下次把整个错误信息都发出来。是的,你完全正确。谢谢你的帮助!虽然现在杯子并没有真正被创建,但这个循环是一个误报。当我键入Cup.all时,我得到了错误
回溯(最后一次调用):2:from/Users/WTFwerewolf/.rvm/rubies/ruby-2.5.1/bin/irb:11:in
'1:from(irb):3 nomethodorror(Cup:Class的未定义方法
all)
,这可能是因为(惊讶)类
Cup
没有定义方法
all
?没有魔法。啊,我以为所有的
都是Ruby自动理解的东西。以前在Rails控制台中工作过。将致力于分离下一个输入行。谢谢你的帮助,尽管我真的很感激!