I might be very much mistaken or having missed something in the manual. But I cannot explain the following behaviour: Program in file test.lua: #! /usr/local/bin/lua if #arg == 0 then print "call this program with: test 5103" else assert (arg[1] == 5103, "arg[1] is not 5103 but " .. arg[1]) end Its output is when run: 116 ~/Projects/Lua/luaprograms/testing: lua test.lua 5103 lua: test.lua:5: arg[1] is not 5103 but 5103 stack traceback: [C]: in function 'assert' test.lua:5: in main chunk [C]: ? It must have something to do with arg[1] not being precisely an integer, because replacing in the test arg[1] by arg[1]-arg[1]%1 passes the assert. I am really curious when an integer given on the commandline seems to turn into something not quite integer. Any ideas why? Must this be considered a bug or a feature. Hans van der Meer
On 07/31/2010 07:17 PM, H. van der Meer wrote:
I am really curious when an integer given on the commandline seems to turn into something not quite integer. Any ideas why? Must this be considered a bug or a feature.
arg values are strings: http://www.lua.org/manual/5.1/manual.html#6 "After handling its options, lua runs the given script, passing to it the given args as string arguments. ..." Best wishes, Taco
participants (2)
-
H. van der Meer
-
Taco Hoekwater