如何使用 Ruby 创建电子邮件地址生成器?

How to create email address generator with Ruby?

  def emails
    i = 0
    number = rand(252...4350)

    males = ["tom", "jack", "adam"]
    females = ["elizabeth", "rose", "juliet"]

    surnameMales = ["oak", "yew", "timber"]
    surnameFemales = ["rosewelth", "gates", "jobs"]

    providers = ["gmail.com", "hotmail.com", "yahoo.com"]

    while i <= 100 do
      @addresses << 
    end
  end

我想要做的是选择一个随机数、姓名、姓氏和提供者并将它们放在一起 + 在姓氏末尾附加一个随机数,例如,它看起来像这样:rose.gates643@gmail.com,但有点卡在我必须把整个事情放在一起的地步。您可能会说,我想创建一个 100 随机电子邮件用于测试目的。

你能告诉我如何用 Ruby 做我想做的事吗?

有一个couple ways to join strings in Ruby。内联占位符似乎在这里最有意义:

@addressess << "#{ males.sample }.#{ surnameMales.sample }#{ number }@#{ providers.sample }"

在双引号字符串中,#{ expr } 被求值并嵌入内联。例如,"#{ 1 + 1 }" 输出 "2"

还有一些区分男性或女性的方法——例如,检查随机数是偶数还是奇数:

name = if rand(1..100) % 2 == 0 ? "#{ males.sample }.#{ surnameMales.sample }" : "#{ females.sample }.#{ surnameFemales.sample }"
@addresses << "#{ name }#{ number }@#{ providers.sample }"

结合使用字符串插值和 Array#sample

"#{females.sample}.#{surnameFemales.sample}#{rand(252...4350)}@#{providers.sample}"
>> "rose.rosewelth3266@gmail.com"

您的目标是将此作为练习,还是只是您想要完成的事情?如果是后者,请安装 faker gem 并使用它:

Faker::Internet.email #=> "kirsten.greenholt@corkeryfisher.info"

对于 100:

100.times.map { Faker::Internet.email }