typestar

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

  1. __init__ guarda el width y el height que le entregan.
  2. area y perimeter leen self.width y self.height sin cambiarlos.
  3. card.area() llama al método a través del valor, sin función suelta de por medio.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 5 en Un primer struct; paso 2 de 22 en Structs y traits.

← Anterior Siguiente →