je traversais railstutorial et a été caractérisé par une doublureoneliner rubis vs groovy
('a'..'z').to_a.shuffle[0..7].join
il crée le nom de domaine aléatoire 7 caractères comme suit:
hwpcbmze.heroku.com
seyjhflo.heroku.com
jhyicevg.heroku.com
J'ai essayé de convertir une doublure pour groovy mais je ne pouvais que trouver:
def range = ('a'..'z')
def tempList = new ArrayList (range)
Collections.shuffle(tempList)
println tempList[0..7].join()+".heroku.com"
Est-ce que ce qui précède peut être amélioré? et fait à un seul paquebot? J'ai essayé de rendre le code ci-dessus plus court par
println Collections.shuffle(new ArrayList (('a'..'z')))[0..7].join()+".heroku.com"
Cependant, apparemment Collections.shuffle(new ArrayList (('a'..'z')))
est un null
belle ... légèrement plus courte:.. ('A' .. 'z') toList() sort { Math.random()} [1..7] .join() + ". Heroku.com" – mbrevoort
Soyez conscient que cela échouera parfois avec Java 7 car ils ont déplacé pour utiliser Timsort par défaut et qui attend des comparaisons entre 2 les valeurs restent constantes. –