2011-07-16 66 views
3

我想數字從0.1至2(如0.1,0.2,0.3,0.4等至2.0),因爲我是一個時髦的傢伙,我決定Range將做的工作,並用這樣的代碼來:如何在Groovy範圍對象中執行此操作?

def a = 0.1..2 
println a 

但它的打印只有[0.1, 1.1]作爲其輸出!所以我不能這樣做Range?或通過語法錯誤?

在此先感謝。

+1

另外,看到這個熟悉的以前的問題的http://計算器。問題/ 573155/groovy-range-with-a-0-5-step-size –

回答

6

這不是微不足道的。範圍對象有一個步驟方法,但這隻允許整數步驟。 另一種解決方案可能是定義您自己的範圍對象。

如果列表也行,你可以在許多使用步驟方法:

0.1.step(2, 0.1){ print "$it "} 

另一種解決方案:

(1 .. 20).collect{it/10} 
+0

哦,但是Groovy在行動中(第一版說它是可能的!)...... Boris發佈的答案不會工作! –

+0

哪個頁碼? – rdmueller

+1

找到了。似乎有一個變化。在第一版中,您會發現一個示例'assert(0.0..1.0).contains(0.5)',它已經在第二個版本中更改爲'assert(0.0..1.0).contains(0.5)== false'這本書的版本。 – rdmueller