Forum: Ruby Question about return and access control

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
03f0cab464436859f070cc57fed97279?d=identicon&s=25 Felipe (Guest)
on 2006-03-16 00:00
(Received via mailing list)
I'm reading PickAxe book and just finished reading chapter 3, which
talks about classes, objects and variables. While this chapter (and the
whole book so far) was very informative, I have two doubts:

- return seems to be used when defining methods and nowhere else. Why
  use it (why not use puts)?
- Why and where specify access control (public, protected and private
  methods)? The examples in the book weren't clear enough.

Thanks in advance.
E24dee41b2fcaff084d11bb928dba23d?d=identicon&s=25 Gerald Murray (Guest)
on 2006-03-16 06:20
(Received via mailing list)
Felipe wrote:
> I'm reading PickAxe book and just finished reading chapter 3, which
> talks about classes, objects and variables. While this chapter (and the
> whole book so far) was very informative, I have two doubts:
>
> - return seems to be used when defining methods and nowhere else. Why
>   use it (why not use puts)?

return <value>  and puts  <value> are distinctly different.
"puts" always sends the value to STDOUT, and the control passes to the
next statement.
"return" makes the <value> available to its receiver (at the caller of
the method in where the "return" statement exists), and control
transfers to the next statement after that receiver.

> - Why and where specify access control (public, protected and private
>   methods)? The examples in the book weren't clear enough.

Chapter 3 is just an introduction to access control.  You then know
that there ARE these differences.  Why these differences exists, and
how to know what methods of a class or module can be accessed, and
under what circumstances, becomes clearer in later chapters.
When studying class inheritance, you will see that the types of
control affect which of the methods declared are available to an
instance of
a class that has inheritance.  Examples there will make the
distinctions
clear.  (and the error messages from the interpreter provide any help
needed.)    Access control is important concept because it improves the
reliability of the program, and can limit possible bugs.
This topic is locked and can not be replied to.