4 ms·
> default values for function parameters function f(a, b, c, d) a = a or 1 b = b or 2 c = c or 3 d = d or 4 end > list
by rweichler 9y ago
> default values for function parameters
function f(a, b, c, d)
a = a or 1
b = b or 2
c = c or 3
d = d or 4
end
> list comprehensions
https://news.ycombinator.com/item?id=14444215 https://news.ycombinator.com/item?id=14444215
> local is default, not global
I think this is a con.
> a simple class system if you need it
I also think this is a con, because it limits flexibility.
Here's my class system:
Object = {}
function Object:new()
local self = setmetatable({}, {__index = self})
return self
end
And how to use it:
local super = Object
Shape = Object.new(super)
function Shape:new(color)
local self = super.new(self)
self.color = color
return self
end
local super = Shape
RedShape = Object.new(super)
function RedShape:new()
local self = super.new(self, 0xff0000)
return self
end
If I want to add multiple inheritance, or interfaces, it is easy. Because it is just metatables. With MoonScript this is not possible.
> `export`, `from` and `import` keywords
Sounds like a con to me. `require` is simple.
> `+=`, `/=`, `*=`
I agree with this one.
- shalabhc 9y ago> function f(a, b, c, d) a = a or 1 b = b or 2 c = c or 3 d = d or 4 end Compare with: f = (a=1, b=2, c=3, d=4) -> ... Also note the latter is correct when you call it as f(false).