Builtins de introspección
A lo largo del libro hemos usado ya la función @TypeOf . Ya sabes que @ quiere decir que son las funciones builtin, es decir, funciones integradas en el lenguaje. Al principio hemos usado también @sizeOf(T) para inspeccionar el tamaño de un tipo.
Puedes encontrar información detallada sobre todas las funciones builtin en esta url: https://ziglang.org/documentation/master/#Builtin-Functions.
Algunas builtin que nos resultan especialmente útiles para manejar tipos y crear genéricos son:
|
@TypeOf (dato) |
Devuelve el tipo de un dato |
|
@typeInfo (T) |
Devuelve información estructurada de un tipo |
|
@hasField (T, “campo”) |
Devuelve booleano si el struct (tipo) tiene el campo |
|
@typeName (T) |
Devuelve una cadena con el nombre del tipo |
|
@compileError (s_msg) |
Provoca un error en tiempo de compilación |
|
@field (T, “campo”) |
Acceso a los campos para leer o modificar |
Todas estas funciones para inspeccionar los tipos son de tiempo de compilación.