CARVIEW |
Introduction
This is a small Ruby tutorial that should take no more than 20 minutes to complete. It makes the assumption that you already have Ruby installed. (If you don’t have Ruby on your computer download and install it before you get started.)
Interactive Ruby
Ruby comes with a program that will show the results of any Ruby statements you feed it. Playing with Ruby code in interactive sessions like this is a terrific way to learn the language.
Open up IRB (which stands for Interactive Ruby).
- If you’re using Mac OS X open up
Terminal
and typeirb
, then hit enter. - If you’re using Linux, open up a shell and type
irb
and hit enter. - If you’re using Windows, open
fxri
from the Ruby section of your Start Menu.
irb(main):001:0>
Ok, so it’s open. Now what?
Type this: "Hello World"
irb(main):001:0> "Hello World"
=> "Hello World"
Ruby Obeyed You!
What just happened? Did we just write the world’s shortest “Hello World” program? Not exactly. The second line is just IRB’s way of telling us the result of the last expression it evaluated. If we want to print out “Hello World” we need a bit more:
irb(main):002:0> puts "Hello World"
Hello World
=> nil
puts
is the basic command to print something out in Ruby. But then what’s the
=> nil
bit? That’s the result of the expression. puts
always
returns nil, which is Ruby’s absolutely-positively-nothing value.
Your Free Calculator is Here
Already, we have enough to use IRB as a basic calculator:
irb(main):003:0> 3+2
=> 5
Three plus two. Easy enough. What about three times two? You could
type it in, it’s short enough, but you may also be able to go up and
change what you just entered. Try hitting the up-arrow on your
keyboard and see if it brings up the line with 3+2
on it. If it
does, you can use the left arrow key to move just after the +
sign
and then use backspace to change it to a *
sign.
irb(main):004:0> 3*2
=> 6
Next, let’s try three squared:
irb(main):005:0> 3**2
=> 9
In Ruby **
is the way you say “to the power of”. But what if you
want to go the other way and find the square root of something?
irb(main):006:0> Math.sqrt(9)
=> 3.0
Ok, wait, what was that last one? If you guessed, “it was figuring out
the square root of nine,” you’re right. But let’s take a closer
look at things. First of all, what’s Math
?
Modules, Group Code by Topic
Math
is a built-in module for mathematics. Modules serve two roles in
Ruby. This shows one role: grouping similar methods together under a familiar
name. Math
also contains methods like sin()
and tan()
.
Next is a dot. What does the dot do? The dot is how you identify the
receiver of a message. What’s the message? In this case it’s
sqrt(9)
, which means call the method sqrt
, shorthand for “square
root” with the parameter of 9
.
The result of this method call is the value 3.0
. You might notice
it’s not just 3
. That’s because most of the time the square root of
a number won’t be an integer, so the method always returns a
floating-point number.
What if we want to remember the result of some of this math? Assign the result to a variable.
irb(main):007:0> a = 3 ** 2
=> 9
irb(main):008:0> b = 4 ** 2
=> 16
irb(main):009:0> Math.sqrt(a+b) => 5.0
As great as this is for a calculator, we’re getting away from the traditional
Hello World
message that beginning tutorials are supposed to focus on… so let’s go back to that.
Get Started, it’s easy!
Explore a new world…
Participate in a friendly and growing community.
- Mailing Lists: Talk about Ruby with programmers from all around the world.
- User Groups: Get in contact with Rubyists in your area.
- Weblogs: Read about what’s happening right now in the Ruby community.
- Ruby Core: Help polish the rough edges of the latest Ruby.
- Issue Tracking: Report or help solve issues in Ruby.
Top Ruby Projects
Syndicate
Content available in English, French, Japanese, Korean, Polish, Spanish, Portuguese, Simplified Chinese, Traditional Chinese, Bahasa Indonesia, German and Italian.
This website is made with Ruby and powered by Radiant CMS. It is proudly maintained by members of the Ruby community. Please contact our webmaster for questions or comments concerning this website.