如何在Ruby中生成随机名称
发布时间:2020-12-17 01:34:11 所属栏目:百科 来源:网络整理
导读:我需要在 ruby中创建一个程序来生成像KU765或NG274样式的机器人名称 并存储它们并检查它以避免重复. 我还需要制作一个“重置”方法来删除所有存储的名称并重新开始. 该程序由于某种原因不起作用.我希望有人帮助我找到错误. 非常感谢. class Robot attr_acces
我需要在
ruby中创建一个程序来生成像KU765或NG274样式的机器人名称
并存储它们并检查它以避免重复. 我还需要制作一个“重置”方法来删除所有存储的名称并重新开始. 该程序由于某种原因不起作用.我希望有人帮助我找到错误. 非常感谢. class Robot attr_accessor :named,:stored_names,:rl def self.name new.name end @@rl = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ" def name named = "" named << @@rl[rand(26).to_i] named << @@rl[rand(26).to_i] named << rand(100..999).to_s named.save_name named.check_name end def save_name stored_names = [] stored_names << named end def check_name stored_names.uniq! end def reset stored_names = Array.new end end 解决方法def save_name stored_names = [] stored_names << named end 每次创建一个名称,并通过为stored_names指定一个空数组来调用save_name删除所有以前创建的名称 编辑: class Robot attr_accessor :named,:rl def initialize() @stored_names = [] end @@rl = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ".chars.to_a def name @named = "" @named << @@rl.sample @named << @@rl.sample @named << rand(100..999).to_s save_name check_name end def save_name @stored_names << @named end def check_name @stored_names.uniq! end def reset @stored_names = Array.new end end >要访问对象的成员,必须使用@作为前缀.>您在@named上调用了save_name和check_name,这是一个字符串,但不提供这些方法> @stored_names必须初始化为空数组,然后才能使用<<将元素推入其中.这通常在类的构造函数initialize()中完成 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |