lua-users home
lua-l archive

Re: Lua 5.4 Tuples FTW!

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On 16.03.2018 11:11, Duane Leslie wrote:
[
On 16 Mar 2018, at 17:54, Thomas Jericke <tjericke@indel.ch> wrote: The problem I see, is that you don't get raw equality with any userdata implementation of tuples. So I cannot use them as table keys.
This can be solved using interning as is often done with strings, it just makes the constructor function more difficult and requires a `__gc` metamethod.
Just.

Well I see how this can work, but then, this is nothing that could not be done with Lua 5.3 and tables.
[
 
Also they are passed by reference and not by value. That can be confusing once you edit a value in that tuple.
The passing method doesn't matter if the tuple is immutable (or copy-on-edit) so this isn't an issue.
Regards,
Duane.
I am actually struggling a little how I would implement a copy-on-edit. The __newindex metamethod gets the userdata and the field name and the new value as parameters. The userdata is passed as a reference, but if I am not completely wrong I cannot edit the original reference, I just get a copy of the reference which is then placed on the stack. If Lua wanted to support this, it would need to be possible that the __newindex method returns a value that replaces the original reference.I haven't tried this so I might be wrong here.

Anyway the resort to immutable will work for sure.
--
Thomas

AltStyle によって変換されたページ (->オリジナル) /