Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
 
Python, Lua, Tcl, C and C++ training - public course schedule [here]
Private courses on your site - see [here]
Please ask about maintenance training for Perl, PHP, Java, Ruby, MySQL and Linux / Tomcat systems
 
Returning multiple values from a function - Lua

Does it strike you as odd that in many languages, functions can take in as many parameters as you like, but can only return one? Of course, you can return a single collection object (list, array, tuple, dictionary, hash, Vector, object ...) or set up global variables to hold side effect results if you wish. But in Lua, you can truly return multiple values:

function food()
return "carrots","peas","gravy","haggis","neaps","tatties"
end


Individual results can be assigned to a series of individual variables, left to right, with any excess or results being discarded. And Lua's use of the variable "underscore" - _ - as a convention of a place filler - can be used to skip over unwanted intermediates if you have any:

first,second,_,fourth = food()
print (first,second,fourth)


If you want to know how many values you're getting back, or to get one back by numbered position, there's a built in select function in Lua:

-- Give me the number of return parameters
iwant = select("#",food())
print (iwant)
-- Give me the third return parameter
iwant = select(3,food())
print (iwant)


One slight 'issue' - if you bring back a multiple result and then use it straight away in another function call, only the first result will be passed on if there are other parameters following. Let me show you that behavior, as it can be a "catch" the first time:

print (food(),food())

gives you

carrots carrots peas gravy haggis neaps tatties

That's a nice meal, but we're apparently missing a portion of peas, gravy, haggis, neaps and tatties - but have plenty of carrots.


(written 2010-04-15, updated 2010-05-14)

 
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
U106 - Lua - Functions.
  [3695] Functions are first class variables in Lua and Python - (2012-04-13)
  [2949] Lua - variable function arguments and select - (2010-09-08)
  [2455] Lua examples - coroutines, error handling, objects, etc - (2009-10-15)
  [2356] Passing multiple results back from a function - Lua, Python, etc - (2009-08-13)
  [2347] Dot, dot, dot in Lua - variable length parameter lists - (2009-08-11)
  [2312] What are closures in Lua? - (2009-07-31)
  [1847] Lua - IAQ (Infrequently Answered Questions) - (2008-10-18)
  [1744] Lua examples, Lua Courses - (2008-08-08)
  [1743] First class functions in Lua lead to powerful OO facilities - (2008-08-07)
  [1699] If you are learning Lua, here are some more examples - (2008-07-06)
  [1697] Sorting in lua - specifying your own sort routine - (2008-07-05)
  [1685] Short circuit evaluation (lazy operator) in Lua - (2008-06-22)


Back to
Mixins example in Python
Previous and next
or
Horse's mouth home
Forward to
Escapee Grandparents welcome - Henfield and Melksham
Some other Articles
Making a Lua program run more than 10 times faster
Every cloud has a silver lining
How do our tactics help us meet the strategy, for the greater good?
Escapee Grandparents welcome - Henfield and Melksham
Returning multiple values from a function - Lua
Mixins example in Python
Regular Expressions in Python
Multiple inheritance in Python - complete working example
Traffic lights in Python
Python - access to variables in the outer scope
4755 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2017: 404 The Spa • Melksham, Wiltshire • United Kingdom • SN12 6QL
PH: 01144 1225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/2723_Ret ... n-Lua.html • PAGE BUILT: Sat May 27 16:49:10 2017 • BUILD SYSTEM: WomanWithCat