Hooks de copia y destrucción en Mojo
Un struct puede definir qué significan para él copiarse y destruirse.
struct Handle(Copyable, Movable):
var name: String
def __init__(out self, name: String):
self.name = name
def copy(self) -> Self:
return Handle(self.name + "-copy")
def __del__(deinit self):
print("closing", self.name)
def main():
var primary = Handle("db")
var backup = primary.copy()
print(primary.name, backup.name)
Cómo funciona
copy(self) -> SelfsatisfaceCopyabley renombra el duplicado.__del__(deinit self)corre cuando un valor muere, e imprime al cerrarse.- Los dos handles se destruyen justo después de su último uso, el más nuevo primero.
Palabras clave y builtins usados aquí
CopyableMovableStringdefprintreturnselfstructvar
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 323
- Tokens
- 91
- Ritmo de tres estrellas
- 75 tpm
Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 73 segundos.
Paso 5 de 5 en Semántica de valores; paso 10 de 22 en Structs y traits.