我在两个单独的文件中有两个类。该脚本首先执行文件domain.rb
在第一个文件(domain.rb)中,我有以下代码:
require 'message.rb'
class Domain
def create_domain
10.times do
puts "#{Message.site}"
end
end
在第二个文件(message.rb)中,我有这样的代码:
class Message
def self.site
@site = [*('a'..'z'),*('0'..'9')].shuffle[0,7].join
@site.concat("@example.com")
end
def other_method
puts "#{Message.site} later in the text #{Message.site}"
end
end
我的问题:
这样我正在执行方法.site三次ergo我将收到3个不同的shuffle方法输出。
[email protected]
[email protected]
[email protected]
我的问题:我怎样才能确保我可以使用[email protected]三次?
记住实例变量:
class Message
def self.site
@site ||= [*('a'..'z'),*('0'..'9')].
shuffle[0,7].
join.
concat("@example.com")
end
puts "#{Message.site} later in the text #{Message.site}"
end
旁注:使用带有参数的Array#sample
而不是改组:
class Message
def self.site
@site ||= [*('a'..'z'),*('0'..'9')].
sample(8).
join.
concat("@example.com")
end
end