我尝试在Google和SO上搜索定义,我找到了使用它们但没有明确定义的示例。 “块”是指插入符号(^
)。我发现它on a site where cdecl they described:
(double (^)(int, long long )) foo
作为
cast foo into block(int, long long) returning double
我从来没有见过这个今天之前用过的符号。任何人都可以清楚地描述一个块是什么,并包含一个最小的工作示例吗?感谢。
答案 0 :(得分:8)
Blocks是Apple的C(而不仅仅是Objective-C)语言的非标准扩展。他们意识到closures (lambda functions等,但是你称之为) - 基本上它们是未命名的类函数实体,包含可以调用的代码。它们便于编写例如事件驱动的代码,其中回调被彻底使用。