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
function Monster:hit(damage)esconde un parámetro self.wight:hit(4)pasa el receptor automáticamente.Monster.__index = Monsterdeja a las instancias hallar métodos.
Palabras clave y builtins usados aquí
endfunctionlocalprintreturnsetmetatable
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.
Paso 3 de 3 en Metatablas; paso 19 de 27 en Fundamentos del lenguaje.