Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
 
For 2021 - online Python 3 training - see ((here)).

Our plans were to retire in summer 2020 and see the world, but Coronavirus has lead us into a lot of lockdown programming in Python 3 and PHP 7.
We can now offer tailored online training - small groups, real tutors - works really well for groups of 4 to 14 delegates. Anywhere in the world; course language English.

Please ask about private 'maintenance' training for Python 2, Tcl, Perl, PHP, Lua, etc.
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.
  [1685] Short circuit evaluation (lazy operator) in Lua - (2008-06-22)
  [1697] Sorting in lua - specifying your own sort routine - (2008-07-05)
  [1699] If you are learning Lua, here are some more examples - (2008-07-06)
  [1743] First class functions in Lua lead to powerful OO facilities - (2008-08-07)
  [1744] Lua examples, Lua Courses - (2008-08-08)
  [1847] Lua - IAQ (Infrequently Answered Questions) - (2008-10-18)
  [2312] What are closures in Lua? - (2009-07-31)
  [2347] Dot, dot, dot in Lua - variable length parameter lists - (2009-08-11)
  [2356] Passing multiple results back from a function - Lua, Python, etc - (2009-08-13)
  [2455] Lua examples - coroutines, error handling, objects, etc - (2009-10-15)
  [2949] Lua - variable function arguments and select - (2010-09-08)
  [3695] Functions are first class variables in Lua and Python - (2012-04-13)


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
4759 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., 2021: 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
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: Sun Oct 11 16:07:41 2020 • BUILD SYSTEM: JelliaJamb