gpt4 book ai didi

objective-c - 最小化重复代码?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:19:24 32 4
gpt4 key购买 nike

我正在尝试像这样在 Objective C 中做一个简单的检查:

if ((spriteA.tag == 4 && spriteB.tag == 10)) {
}

不过,我正在尝试完成 1 if 检查,同时实现以下目标:

if ((spriteA.tag == 4 && spriteB.tag == 10,11,12,13,14,15,16,17)) {
}

现在我知道我可以使用 || 运算符,但这会使 1 if 检查很多行代码,因此它看起来难以辨认.现在是否有任何有组织的方式来实现我想要做的事情?

谢谢!

最佳答案

最简单的方法可能是制作一个位掩码 int spriteBtags = (1 << 10) | (1 << 11) | (1 << 12) | ...;然后用 (1 << spriteB.tag) & spriteBtags 测试.但请注意,此方法将 spriteB.tag 的值限制为 int 或 long 中的位数。而且,当然,您有很长的语句来创建 spriteBtags ,但这是一次性作业。

Pascal 等其他语言有位集,这使得这类事情更加直接。

(您至少可以通过编写可变参数函数来隐藏赋值语句的复杂性:int spriteBtags = createIntBitset(10,11,12,...17,-1);)

关于objective-c - 最小化重复代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12764292/

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