Hi!
Is it any code that says “if x== a number then text(x/2)” and “if x~= a number then text(x)”? I’m looking for a code that’s check if it is a number or just a word
if type(x)=="number"
Thanks @yojimbo2000
type
will return “string”, “table”, “function”, but if it’s one of the Codea API elements like a vec or a matrix it will just say “userdata”
@yojimbo2000 - here is some code somebody worked out a while back to give more info on “userdata” types
function typeOf(x)
if x==nil then return "nil" end
if type(x) == "table" and x.is_a then return("class") end
local txt
if typeTable==nil then
typeTable = {
[getmetatable(vec2()).__index ] = "vec2",
[getmetatable(vec3()).__index ] = "vec3",
[getmetatable(color()).__index ] = "color",
[getmetatable(image(1,1)).__index ] = "image",
[getmetatable(matrix()).__index] = "matrix",
[getmetatable(mesh()).__index ] = "mesh" ,
}
end
local i = getmetatable(x)
if i then txt = typeTable[i.__index] end
if txt then return txt end
txt = type(x)
return txt
end
whats the difference between table and class?
google lua table class
This is something you can learn on your own, it’s too big a subject to teach you here
I’ve also written ebooks which explain the differences, see the wiki link above
i mean whats x.is_a
that’s a property of every class (but not a table), which is why it’s used to tell the difference
From wiki pedia for lua:
if tonumber(a) ~= nil then
--it's a number
end;
That should work if it’s hex like 0xFF or scientific notation 1.1e-40 as well