Difference between revisions of "Ruby"

From Suhrid.net Wiki
Jump to navigationJump to search
Line 60: Line 60:
  
 
* When invoking a method, parentheses are optional.
 
* When invoking a method, parentheses are optional.
 +
* Class methods (static methods) are created in the same way as normal methods, except are prefixed with keyword "self".
 +
* Array.methods returns all methods in the Array class.
 +
* Ruby convention is to use the last character of a method name to indicate its behaviour. e.g ? is used to indicate return of boolean. "!" is changing the state of the object.
 +
* self refers to the current object. (similar to this)
 +
*

Revision as of 10:10, 3 September 2014

Philosophy

  • Focus is on the programmer rather than the machine. i.e. maximize programmer efficiency.
  • Principle of least astonishment - behave in such a way that minimized the confusion of experienced Ruby programmers.
  • Ruby is an object-oriented scripting language.
  • Multi paradigm :
    • Scripting : automate tasks within some environment
    • Imperative : traditional control structures
    • Object oriented : everything is an object
    • Functional : Also exists. Computation proceeds via the evaluation of functions that depend only on their input, not program state.

Classes and Inheritance

class MyClass
   @boo #instance variable
   def my_method
     @foo = 2 #instance variable
   end
end
mc = MyClass.new #create a myclass object
mc.my_method     #calls the method
mc.boo           #error, not allowed to access variable
  • An instance variable can only be accessed or modified within a method definition.
class MyClass
 def boo  #getter method
   return @boo
 end

 def boo=(val) #setter method
   @boo = val
 end
end
mc = MyClass.new #create a myclass object
boo = 1 #calls the setter method
boo  #calls the getter method
  • No return values specified in the method. The value of the last expression executed in the method is its return value.
def min (x,y)
  if x < y then x else y end
end
  • When invoking a method, parentheses are optional.
  • Class methods (static methods) are created in the same way as normal methods, except are prefixed with keyword "self".
  • Array.methods returns all methods in the Array class.
  • Ruby convention is to use the last character of a method name to indicate its behaviour. e.g ? is used to indicate return of boolean. "!" is changing the state of the object.
  • self refers to the current object. (similar to this)