Foundations
Methods
Methods name reusable work and return a value to the caller.
method
A method groups statements behind a name and can receive arguments.
Methods
methods.rb
Replay: real traced execution (multi-file project)
def square(value)
value * value
end
side = 5
area = square(side)
puts "side=#{side}"
puts "area=#{area}"
def square(value)
value * value
end
side = 3
area = square(side)
puts "side=#{side}"
puts "area=#{area}"
def square(value)
value * value
end
side = 8
area = square(side)
puts "side=#{side}"
puts "area=#{area}"
side ← 5
5side→ 5 = 5 #@side=3, 86area = square(side5)def square(value)
1def square(value5)2 value5 * value3endarea ← 25
5side = 5 #@side=3, 86area→ 25 = square(side5)78puts "side=#{side5}"9puts "area=#{area25}"outputside=5 area=25
side ← 3
5side→ 3 = 36area = square(side3)def square(value)
1def square(value3)2 value3 * value3endarea ← 9
5side = 36area→ 9 = square(side3)78puts "side=#{side3}"9puts "area=#{area9}"outputside=3 area=9
side ← 8
5side→ 8 = 86area = square(side8)def square(value)
1def square(value8)2 value8 * value3endarea ← 64
5side = 86area→ 64 = square(side8)78puts "side=#{side8}"9puts "area=#{area64}"outputside=8 area=64
Follow the Method Call
sidestarts at5.square(side)sends5into the method.- The method returns
5 * 5. areabecomes25.- The program prints
side=5andarea=25. | side | square result | | --- | --- | | 3 | 9 | | 5 | 25 | | 8 | 64 |
Exercise: methods.rb
Reproduce area=25 for side 5, then try side 3 and 8 and predict each area before running it.