Métodos en un struct en Mojo
Los métodos son funciones que toman self, así que leen los campos junto a él.
struct Rect(ImplicitlyCopyable, Movable):
var width: Float64
var height: Float64
def __init__(out self, width: Float64, height: Float64):
self.width = width
self.height = height
def area(self) -> Float64:
return self.width * self.height
def perimeter(self) -> Float64:
return 2.0 * (self.width + self.height)
def main():
var card = Rect(3.0, 4.0)
print(card.area(), card.perimeter())
Cómo funciona
__init__guarda elwidthy elheightque le entregan.areayperimeterleenself.widthyself.heightsin cambiarlos.card.area()llama al método a través del valor, sin función suelta de por medio.
Palabras clave y builtins usados aquí
Float64Movabledefprintreturnselfstructvar
El intento, en números
- Líneas
- 18
- Caracteres a escribir
- 388
- Tokens
- 99
- Ritmo de tres estrellas
- 85 tpm
Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 70 segundos.
Paso 2 de 5 en Un primer struct; paso 2 de 22 en Structs y traits.