Retiring, March 2020 - sorry, you have missed our final public course.
The Coronavirus situation has lead us to suspend public training - which was on the cards anyway, with no plans to resume
Please ask about private 'maintenance' training for Python, Tcl, Perl, PHP, Lua, etc
Happily continuing private consultancy / programming work
Variable types in Ruby
* Variable with names starting with a lower case letter are local variables
* Names starting with a capital letter are constants - you can set them once each time you run a program and then they are fixed
* Names starting with a single @ character are object variables - in other words, you'll usually create one of each of the @ variables in an object for each object of the class you create. (I say "usually" as Ruby is dynamic and you can add variable to an object long after you have run the constructor if you really want to!)
* Names starting with two @ characters are class variables - so you create just one for the whole class which is shared between all instances.
* Names starting with a $ are global variables which you can refer to anywhere in your code.
You do NOT declare whether a variable is an int, a float or a scaly_anteater in Ruby, as all variables contain objects - and indeed a variable may contain a string at one point in your program, a cube at a later point and can finish up as a puff_of_smoke.
Here's an example piece of code.
@diam = diameter
@colour = colour
@@ndisc += 1
$ticker += 1
tocker = 17
This is a constructor for an object for which who object variables are created - @colour and @diam. There is also a class variable called @@ndisc which is incremented every time this constructor is run, And $ticker is a global variable - it can be reference anywhere else in the code. The bare variables diameter, colour and tocker are local - and the tocker variable appears to be pointless (Ruby won't complain) as it is set then wasted as the method exits.
See a complete example that uses this code here (written 2008-03-21, updated 2008-03-22)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articlesR110 - Ruby - Special Variables and Pseudo-Variables 
One line scripts - Awk, Perl and Ruby - (2016-05-20) 
Reading and parsing a JSON object in Ruby - (2015-06-01) 
Ruby - a teaching example showing many of the language features in short but useful program - (2012-06-09) 
Object Oriented Ruby - new examples - (2010-02-03) 
Constants in Ruby - (2010-02-01) 
Variable scope - what is it, and how does it Ruby? - (2009-07-18) 
Ruby to access web services - (2008-11-16) 
Some Ruby programming examples from our course - (2008-03-21) 
Ruby - Totally Topical - (2006-12-16)R119 - Ruby Miscellany 
Ruby Documentation through rdoc - (2012-07-07) 
Load path, load and require in Ruby, and a change from 1.8 to 1.9 - (2012-06-24) 
Loading Ruby classes - where does Ruby look? - (2012-02-24) 
How many days to Christmas? - (2011-09-09) 
Rake - a build system using code written in Ruby - (2011-02-03) 
MySQL database from Ruby - an example - (2008-11-16) 
Ruby mixins, modules, require and include - (2008-11-16) 
Some Ruby lesser used functions - (2008-07-26) 
Good Programming practise - where to initialise variables - (2007-05-09)
Some other Articles
All Change, Portsmouth HarbourDynamic Memory Allocation in C - calloc, reallocString interpretation in RubyVariable types in RubyWell House Consultants / Manor - StaffUsing Structs and Unions together effectively in CBusinesses in West Wiltshire - networkingRuby, C, Java and more - getting out of loopsWhat is an lvalue? (Perl, C)
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
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).