Advertisement
PHOBOSS

Lua Switch Case Experiment

Mar 24th, 2022 (edited)
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1.  
  2. local function testFunc(tag)
  3. print(tag)
  4. end
  5.  
  6. local function testFunc2(tag)
  7. for k=0,3 do
  8. print(k.." : "..tag)
  9. end
  10. end
  11.  
  12. local function testFunc3(x,y,z)
  13. for k=0,3 do
  14. print("X:"..x.." Y:"..y.." Z:"..z)
  15. end
  16. return 7777
  17. end
  18.  
  19. switch1 = {
  20. [1] = function(tag,x,y,z) testFunc(tag) end,
  21. [2] = function(tag,x,y,z) testFunc2(tag) end,
  22. [3] = function(tag,x,y,z) return testFunc3(x,y,z) end,
  23. ['default'] = function() print("defaulted") end,
  24. }
  25.  
  26. local func = switch1[4]
  27. if(func) then
  28. func("myName",-2,10,5.0)
  29. else
  30. print " The program has been terminated."
  31. print " Thank you!";
  32. end
  33.  
  34. function switch(param,tag,x,y,z,case_table)
  35. local case = case_table[param]
  36. if case then return case(tag,x,y,z) end
  37. local def = case_table['default']
  38. return def and def() or nil
  39. end
  40.  
  41. local s = switch(1,"pr0ngus",7,5,5,switch1)
  42. print(s)
  43.  
  44. s = switch(2,"pr0ngus",7,5,5,switch1)
  45. print(s)
  46.  
  47. s = switch(3,"pr0ngus",7,5,5,switch1)
  48. print(s)
  49.  
  50. s = switch(4,"pr0ngus",7,5,5,switch1)
  51. print(s)
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement