lua-users home
lua-l archive

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


On Fri, Aug 14, 2015 at 2:48 PM, Andrew Starks <andrew.starks@trms.com> wrote:
> On Fri, Aug 14, 2015 at 1:31 PM, Coda Highland <chighland@gmail.com> wrote:
>> On Fri, Aug 14, 2015 at 11:29 AM,  <tobias@justdreams.de> wrote:
>>>
>>> Quoting "Soni L." <fakedme@gmail.com>:
>>>
>>>>
>>>> With orif:
>>>>
>>>> ```lua
>>>> local flag = false
>>>> if i == 1 then
>>>>     flag = true
>>>> orif i == 2 then -- explicit fallthrough
>>>>     print(flag)
>>>> else -- default
>>>>     print "Unknown!"
>>>> end
>>>> ```
>>>
>>>
>>> Lua has elseif which is I think exactly the same:
>>> local flag = false
>>> if i == 1 then
>>>     flag = true
>>> elseif i == 2 then -- explicit fallthrough
>>>     print(flag)
>>> else -- default
>>>     print "Unknown!"
>>> end
>>>
>>> Regards,
>>>   Tobias
>>
>> No, elseif is totally different semantics, and elseif is exactly WHY I
>> think orif is a bad idea: elseif only fires if an earlier condition
>> wasn't true. orif looks syntactically like it ought to behave like
>> elseif, but it doesn't.
>>
>> /s/ Adam
>>
>
>
> Points + AND - for being clever, though. This is one of the times when
> I *feel* like I'm inefficient in lua:
>
> local the_type = type(foo)
>
> if the_type == 'table' then
>   --- something
> elseif type == 'number' then
> --- blah
>
>
> ---
>
> or some other/better example. I don't know if it *is* slow, however.
> I'm not qualified to judge `orif` innovative or otherwise, but given
> the volume of Sonic's proposals, I was surprised to find myself
> intrigued by this one. FWIW
>
> -Andrew
>

This is a good example of why DRY is a good idea: you avoid mistakes
like comparing to the wrong variable in your elseif there. :-)

-- 
Sent from my Game Boy.