Je sais qu'il est possible de surcharger l'opérateur d'addition dans lua pour les tables. En faisant:lua quels opérateurs peuvent être surchargés
foo = {
value = 10
}
bar = {
value = 15
}
mt = {
__add = function(left,right)
left.value = left.value + right.value;
return left;
end
}
setmetatable(foo,mt);
foo = foo + bar;
print(foo.value);
impressions: 25
Mais ma question est maintenant que les autres opérateurs peuvent vous surcharger et si __add est utilisé pour accéder à l'opérateur +, comment pouvez-vous accéder à d'autres opérateurs?
Qu'en est-il de '__gc' et' __metable' et '__mode'? – warspyking
Ceux qui sont déclenchés par des événements internes Lua ou liés à la gestion des structures internes. Il n'y a pas d'opérateurs explicites en langage Lua qui peuvent déclencher ces métaméthodes directement. – Vlad