我有一个iPhone版本的应用程序,它使用一些代码来设置颜色。在java中选择随机颜色
((rand() % 176) * 80)/256.0f
我是新来objective c
所以我想不通这是怎么工作的。我想在Android上做一个精确的副本Java
。
在Java中我们通常使用Random()
。为什么我想实现使用此上述功能Random r = Random();
我有一个iPhone版本的应用程序,它使用一些代码来设置颜色。在java中选择随机颜色
((rand() % 176) * 80)/256.0f
我是新来objective c
所以我想不通这是怎么工作的。我想在Android上做一个精确的副本Java
。
在Java中我们通常使用Random()
。为什么我想实现使用此上述功能Random r = Random();
等效的一行中的Java将是:
((new Random().nextInt() % 176) * 80)/256.0f;
更多的JavaDoc
随机类很显然,你不应该创建一个新的每次都有Random
的实例。
Random r = new Random();
// call r.nextInt() each time you need a new random integer
double color = ((r.nextInt() % 176) * 80)/256.0f;
每当你想要一个新的随机值时,没有理由构造一个新的Random对象。 –
单行,但如果必须生成多个随机数,则效率不高,否则就不会有效。 –
@HarmeetSingh你能解释一下吗? –
在Android中,我第一初始化变量rand = new Random()
。然后,我会写你的表达为:
rand.nextInt(176)/3.2f
(注意80/256.0 == 1/3.2
)。我只值赋给rand
一次,每次我需要一个新的颜色时重复使用相同的Random
对象。
有点背的最信封下班后,似乎你原来的代码是计算0和55.0f之间均匀分布的随机浮点值只是一种奇特的方式。因此,做同样的事情的一个更简单的方法是:
rand.nextFloat(55)
这样做的唯一缺点是,它并不像原来的代码非常接近(尽管它具有相同的行为)。
这真的很简单。你不了解什么部分?您发布的代码行是直C,其中没有Objective-C。 – user1118321