Di Scala, Anda sering menggunakan iterator untuk melakukan for
perulangan dalam urutan yang meningkat seperti:
for(i <- 1 to 10){ code }
Bagaimana Anda melakukannya sehingga berubah dari 10 menjadi 1? Saya kira 10 to 1
memberikan iterator kosong (seperti matematika kisaran biasa)?
Saya membuat skrip Scala yang menyelesaikannya dengan memanggil terbalik pada iterator, tetapi itu tidak baik menurut saya, apakah berikut ini cara yang harus dilakukan?
def nBeers(n:Int) = n match {
case 0 => ("No more bottles of beer on the wall, no more bottles of beer." +
"\nGo to the store and buy some more, " +
"99 bottles of beer on the wall.\n")
case _ => (n + " bottles of beer on the wall, " + n +
" bottles of beer.\n" +
"Take one down and pass it around, " +
(if((n-1)==0)
"no more"
else
(n-1)) +
" bottles of beer on the wall.\n")
}
for(b <- (0 to 99).reverse)
println(nBeers(b))
until
yang dapat Anda gunakan sebagai penggantito
untuk mengecualikan titik akhir kanan dari jangkauan. Titik akhir sisi kiri selalu disertakan.