2009-12-16 21 views
30

¿Qué significa la intercalación en el objetivo C?Caret en el objetivo C

es decir.

void (^handler)(NSInteger);

de Mac Dev Center

+0

También vale la pena señalar que los Bloques son una extensión C agregada por Apple de acuerdo con [Wikipedia] (http://en.wikipedia.org/wiki/Blocks_ (C_language_extension)). – styfle

+0

Es similar a lambda en Lisp o Python –

Respuesta

30

Depende del contexto. En el ejemplo que muestra, se usa para denotar un Bloque. El símbolo de intercalación es también el bitwise XOR operator en lenguajes basados ​​en C - eso es lo que la mayoría de los programadores identificarlo como, por lo que es bueno para entender que puede ser a la vez dependiendo de donde aparece, al igual que *, etc.

Y mientras estamos sugiriendo referencias, uno simplemente tiene que incluir Apple's official Blocks reference.

10

El símbolo de intercalación representa un bloque o un cierre que lleva alrededor de o contiene el ámbito léxico. Son similares a los bloques en ruby. Se puede encontrar una referencia excelente en here.

+0

¿Podría darnos más detalles? – Casebash

+2

agregó una referencia anterior que debería comenzar – ennuikiller

3

Como dijo ennuikiller, indica un bloque. Si desea obtener más información, Ars Technica tiene un excelente review profundo de Snow Leopard que describe no solo bloques y cierres, sino también Grand Central Dispatch y todas las otras nuevas tecnologías en Mac OS X 10.6. Muy recomendable.