Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A Quick Intro to Ruby

Nick McCurdy
September 18, 2014

A Quick Intro to Ruby

A tour of Ruby's basic syntax for novice programmers.

Nick McCurdy

September 18, 2014
Tweet

More Decks by Nick McCurdy

Other Decks in Programming

Transcript

  1. What is Ruby? Ruby is a programming language that is…

    • dynamically typed • object oriented • flexible • inspired by many features of other languages
  2. Hello World puts “Hello, world!” Note that, similarly to Python,

    code doesn’t have to be in a class, method, or module. This makes Ruby very useful for scripting. Running from a file: ruby hello.rb
  3. Methods def double(number) number * 2 end # Note that

    parentheses for method calls are optional double 5 # 10 # This also works double(5)
  4. Methods with Optional Arguments def greet(name = “Ruby”) puts “Hello,

    I am #{name}.” end greet # Hello, I am Ruby. greet “Nick” # Hello, I am Nick.
  5. Simple Types Strings • “Hello” or ‘Hello’ • Mutable. Numerics

    • 4 or 4.0 • Note that Fixnums and Floats are two separate subclasses of Numerics. Booleans • true or false Symbols • :green • Immutable. • Useful for representing an arbitrary value (use this where you want an enum or a String that represents an arbitrary value but isn’t displayed).
  6. More Types Arrays • [“One”, 2, :3] • Arrays are

    dynamically typed, so they can contain values of different types. • Arrays are more like what other languages call “lists”, since they can be modified. Ranges • 0..10 • Can be used to into into an array like this: array[0..10] Hashes • person = { “Name” => “Bob”, “Age” => 15 } • Like a dictionary or hash map in other languages. • person = { name: “Bob”, age: 15 } • name: “Bob” is the same as :name => “Bob”, but easier to read and write. • Looking up a value: person[:name]
  7. Classes # Create the Person class class Person def initialize(name)

    @name = name end attr_reader :name def greet(other) puts “Hello #{other.name}, I am #{@name}.” end end # Create two people that will greet each other matz = Person.new(“Yukihiro Matsumoto”) david = Person.new(“David Heinemeier Hansson”) matz.greet(david) # output: Hello Yukihiro Matsumoto, I am David Heinemeier Hansson.
  8. Modules # Add to Ruby’s existing Math module module Math

    def self.double(number) number * 2 end end # Call the method directly off the module Math.double(5) # Output: 10