0% found this document useful (0 votes)
70 views

Ruby

Ruby is an interpreted scripting language that is useful for small to medium projects. It is interpreted at runtime using the irb Ruby interpreter rather than being compiled like C/C++ or Java. Ruby does not require semicolons or parentheses around method calls. It uses duck typing, allowing flexible and reusable code. Variables are untyped and their type can change. Arrays and hashes provide useful collection methods.

Uploaded by

Karina Ang
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
70 views

Ruby

Ruby is an interpreted scripting language that is useful for small to medium projects. It is interpreted at runtime using the irb Ruby interpreter rather than being compiled like C/C++ or Java. Ruby does not require semicolons or parentheses around method calls. It uses duck typing, allowing flexible and reusable code. Variables are untyped and their type can change. Arrays and hashes provide useful collection methods.

Uploaded by

Karina Ang
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 28

Ruby!

• Useful as a scripting language


– script: A small program meant for one time use
– Targeted towards small to medium size projects

• Use by:
– Amazon, Twitter, Yahoo!, White Pages, Reddit
Interpreted

• C/C++
– Compiled to assembly/Run directly on machine
• Java
– Compiled to bytecode/Interpreted by JVM
• Ruby
– Interpreted (no compilation)
irb (Ruby interpreter)

• Allows you to type commands one at a time


and see results
Our First Program

• Ruby does not have a main method like Java


– Just write your code directly in a file
• Ruby statements do not end with semicolons
• Method calls don’t need parenthesis
Expressions

• Arithmetic is similar to Java


– Operators similar to Java
• + - * / % (plus ** for exponentiation)
• Precedence
– () before ** before * / % before + -
• Integers vs Real Numbers
Unlimited Precision

• Java
– There is a maximum value for integers
– There is a maximum value for longs
• Ruby
– There is no maximum!

• Fixnum
• Bignum
– Why the distinction?
Declaring Strings

• “” allows escape sequences

• ‘’ does not allow escapes (excpet for \’)


Variables/Types

• Don’t declare types


• Ruby is looser about Types than Java
– Type of variable can change throughout program
String Multiplication

• Strings can be multiplied by integers


– Concatenates string repeatedly
Strings and Ints

• Integers and Strings cannot be concatenated


in Ruby
– to_s – converts to string
– to_i – converts to integer
Loops

• The for loop


– Java

– Ruby
Loops

• The while loop


– Java

– Ruby
Constants

• Ruby doesn’t really have constants


– Instead declare a variable at the top of your code
and it will be accessible everywhere

– You will get a warning if you change a constant,


but you can change it anyway (bad style)
Parameters

• Parameters are declared by writing their


names (no types)

• May seem odd that we can pass ints, strings,


or arrays
Duck Typing

• Actually, we can pass anything that has a +


method
– This is called Duck Typing
– Why would we limit our method to only operating
on objects of type Duck?
• If it looks like a Duck and quacks like a Duck, then it’s a
Duck
• This allows us to write flexible, reusable code
Inspecting Objects

• How do I know whether an object has a +


method?
– You can ask the object (with the “methods”
method)
– Everything is an object in Ruby (no primatives)
Default Parameter Values

• You can give a default value to parameters


– The caller doesn’t have to pass a value
Math

• The Math module has methods and constants


that you can use

• Has many of the same methods as Java


Returning Values

• Methods in Ruby return the last value


evaluated (only do this if you’re an expert)

• You can also explicitly return values, and this is


less error prone
Reading from the Console

• Java

• Ruby
If Statements

• Java

• Ruby
elsif

• Java

• Ruby
Logical Operators

• == != >= <= < > (just like Java)


• <=> (not in Java)
– Remember, because of Duck Typing these are
applicable to more than just numbers

– What might <=> be useful for?


• && || ! (just like Java)
Arrays

• Arrays
– More flexible than Java, can mix types

– Many useful methods


• map, sort, delete, each, min, max, include?, select,
shuffle, slice
– Negative Indexing
Hashes

• In Java these are Maps


– (you will learn about them in 143)
– Ruby’s are more flexible; you can mix types
• Kind of like Arrays, but instead of indexing by
numbers, you index by whatever you want
Multiple Assignment

• Can assign to and return multiple items at a


time (uses arrays under the covers)
Reading Files

• Java

• Ruby
Writing Files

• Java

• Ruby

You might also like