typestar

El dos puntos en Lua

Definición y llamada de método pasan self en un solo hábito.

-- The colon passes self: method definition and call in one habit.
local Monster = {}
Monster.__index = Monster

function Monster.new(name, hp)
  return setmetatable({ name = name, hp = hp }, Monster)
end

function Monster:hit(damage)
  self.hp = self.hp - damage
  return self.hp > 0 and (self.name .. " snarls") or
    (self.name .. " crumbles")
end

local wight = Monster.new("barrow wight", 9)
print(wight:hit(4))
print(wight:hit(6))

Cómo funciona

  1. function Monster:hit(damage) esconde un parámetro self.
  2. wight:hit(4) pasa el receptor automáticamente.
  3. Monster.__index = Monster deja a las instancias hallar métodos.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
17
Caracteres a escribir
427
Tokens
105
Ritmo de tres estrellas
65 tpm

Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 97 segundos.

Escribe este fragmento

Paso 3 de 3 en Metatablas; paso 19 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →