Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
问题是:这样做是否更快:
if (!self.isStarted) { self.started = YES; }
或者简单地说:
self.started = YES;
并在每个通过的循环中重新分配值。
条件比较慢,并且不像简单地将变量设置为 YES 那样清晰。您的代码的重点是,在您离开那段代码后,您要确保变量为 YES,并且由于在总体方案中操作是如此便宜,所以为了可读性,只需将其设置为 YES 而无需事先检查.
虽然编译器可能无论如何都会优化它,self.started = YES;但会更快,因为它节省了必须从内存中检索值并进行比较的开销。这个答案只对低级语言有效;高级语言将依赖于实现。