调用一次 shuffle 方法并在 ruby 中多次使用输出
Call shuffle method once and use output multiple times in ruby
我在两个单独的文件中有两个 类。该脚本首先执行文件 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 方法执行三次,因此我将收到 3 种不同的 shuffle 方法输出。
v9srm6z@example.com
b9rlgti@example.com
c96nve1@example.com
我的问题:如何确保我可以使用 v9srm6z@example.com 三次?
记忆实例变量:
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
我在两个单独的文件中有两个 类。该脚本首先执行文件 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 方法执行三次,因此我将收到 3 种不同的 shuffle 方法输出。
v9srm6z@example.com
b9rlgti@example.com
c96nve1@example.com
我的问题:如何确保我可以使用 v9srm6z@example.com 三次?
记忆实例变量:
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