gpt4 book ai didi

objective-c - 这是 Obj-C 中 block 的有效用途吗?

转载 作者:行者123 更新时间:2023-12-04 02:40:13 25 4
gpt4 key购买 nike

在我的构造函数中,我想创建一种随机颜色。

因此,我需要三个 0…1 范围内的随机 7 位浮点来组成颜色的红色、绿色和蓝色分量。我没有将相当长的 random() % 128/128.0 写入三次,而是将其放在一个 block 中:

CGFloat (^randFloat)() = ^(){ return random() % 128 / 128.0; };
color = CGColorCreateGenericRGB(randFloat(), randFloat(), randFloat(), .5);

这是使用 block 的有效方法吗?
如果没有,你会用什么来代替?

最佳答案

你要返回randFloat吗? randFloat 是否会使用与附近函数不可分离的任何状态(即 randFloat 是否是一个闭包)?如果没有,在函数外部创建静态函数会更便携(例如,iPhone 官方 SDK 还不支持 block )并且更高效:

static CGFloat randFloat() {
return random() % 128 / 128.0;
}
...
color = CGColorCreateGenericRGB(randFloat(), randFloat(), randFloat(), .5);

关于objective-c - 这是 Obj-C 中 block 的有效用途吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2419202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com