我想在
xcode中使用这样的公式制作一个客观的c数组.
> x 5
> x-5
> x / 5
> x * 5
所以我可以用arrayName [i]加载一个公式并给出x的值并得到答案.有没有办法做到这一点,如果是这样的话怎么样?
解决方法
您可以使用一系列块来实现此目的.每个块将接收参数x并返回一个值,计算您的一个函数.然后,您可以选择数组的任何位置并执行它.
它将是这样的:
typedef CGFloat (^MyFunction)(CGFloat); //using a typedef to ease the heavy syntax of the blocks MyFunction function1 = ^CGFloat(CGFloat x){ return x + 5; }; MyFunction function2 = ^CGFloat(CGFloat x){ return x - 5; }; MyFunction function3 = ^CGFloat(CGFloat x){ return x / 5; }; MyFunction function4 = ^CGFloat(CGFloat x){ return x * 5; }; NSArray *functions = @[function1,function2,function3,function4];
现在您可以访问数组的任何位置,并执行所选的块,如下所示:
MyFunction myFunction = functions[3]; CGFloat test = myFunction(5); //test will hold 25,because the selected block is 'x * 5'
显然,你可以为数组的任何索引更改3.当然,您可以声明上述任何其他函数,并将它们添加到数组中.
我测试过,效果很好.希望它有所帮助.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。