objective-c - solo - tomar agua me adelgaza
¿Cuál es la importancia de comenzar constantes con ''k''? (4)
Creo que el uso de una "k" inicial es porque todos los idiomas lo pronuncian como una consonante difícil y, por lo tanto, le recuerda a la gente la pronunciación inglesa de "constante" :-)
Ninguna palabra reservada comienza por k, por lo que es más fácil como objetivo de búsqueda.
Alternativamente, desde un aspecto gráfico, como personaje principal proporciona una bandera muy clara frente al resto del nombre. La "c" inicial es menos obvia y podría utilizarse para indicar roles (como en la notación húngara) o clases (si se trata de un lenguaje insensible a mayúsculas y minúsculas).
MY_CONSTANT está bastante de acuerdo con las constantes basadas en macro. A veces es importante saber que una constante está definida por una macro, por ejemplo, que implica que se basa en literales y, por lo tanto, en un rango limitado de tipos de datos, además de estar definida en un ámbito global y por lo tanto (como Michael Burr señaló out) anula cualquier constante de espacio de nombre local.
Me estoy enseñando Objective-C y noté en muchos libros y ejemplos el uso de ''k'' y camel-casing en definición constante, por ej.
#define kMyConstant 0
¿Cuál es el significado de la ''k''? ¿Es esto único para el estilo Objective-C, o común a C en general? ¿Por qué la desviación de (lo que siempre he pensado como una mejor práctica) K_MY_CONSTANT estilo?
Gracias.
La cosa kMyConstant se remonta a los viejos tiempos de programación de Mac (80s / 90s son "muy viejos"). Este era un estándar que usaba Apple y muchos programadores de Mac también lo usaban; esto tomó el lugar de las definiciones MY_CONSTANT-type.
Me imagino que los autores que estás leyendo eran programadores de Mac Pascal / C para la antigua Mac Toolbox antes de ser programadores de NeXT / Cocoa. Las bibliotecas Mac solían llamarse "Caja de herramientas": este era el conjunto de API y bibliotecas que se convirtieron en carbono a lo largo del tiempo.
Todavía uso kMyConstant a veces; conduce a mis colegas programadores de Unix de la vieja escuela a la locura. :-)
Todas las mayúsculas (como en K_MY_CONSTANT
) normalmente K_MY_CONSTANT
una macro, no necesariamente una constante. En general, es importante que las macros se destaquen porque destruyen todos los espacios de nombres.
La convención '' k
'' se usa (pero no universalmente) para constantes que no sean macros en C / C ++ y probablemente en otros idiomas. Sospecho que se usa '' k
'' porque '' c
'' ya se usa con frecuencia, ya sea para indicar un nombre de clase (como en CString
) o que una variable es un contador.
Se mencionó una vez antes en la pregunta SO, minúscula "k" en Cocoa .
Es una notación de programación general no específica para Objective-C (es decir, notación húngara) y la "k" significa "constante".
Si observa el caché de Google de las directrices de Google para Objective-C, puede ver que solían incluirlo en su guía de estilo:
Los nombres constantes (#defines, enumeraciones, variables locales const, etc.) deben comenzar con una k minúscula y luego usar mayúsculas y minúsculas para delimitar las palabras, es decir kInvalidHandle, kWritePerm.
Aunque es un dolor escribir, son absolutamente vitales para mantener nuestro código legible. Las siguientes reglas describen lo que debe comentar y dónde. Pero recuerde: si bien los comentarios son muy importantes, el mejor código es la autodeterminación. Dar nombres razonables a tipos y variables es mucho mejor que usar nombres oscuros y luego tratar de explicarlos a través de comentarios.
Pero desde entonces se eliminó en la versión en vivo del documento. Cabe señalar que va en contra de las Guías de codificación oficiales para el cacao de Apple.