陈斌彬的技术博客

Stay foolish,stay hungry

Ruby -方法

方法定义

在 Ruby 中方法就相当于其他编程语言中的函数,但是方法必须是以小写字母开头的(切记!)!

def method_name [args]
    statements
end

与其他编程语言(如C语言)一样,其方法也可以接收参数

范例:

#!/usr/bin/ruby        #文件名为test.rb

def test(arg1="Hello",arg2="Ruby!")
    puts "#{arg1} #{arg2}"
end
test        #调用test方法

运行:

img

Tip:在 ruby 程序中 # 代表注释

返回值

同样 ruby 的方法也可以有返回值的

#!/usr/bin/ruby    #文件名为re_test.rb

def re_test
    i = 20
    j = 30
    k = i + j
    return k
end
re_var = re_test        #调用re_test方法,并将其返回值赋给var(局部变量,还记得起几种变量的定义方式了么?)
puts "return value: ",re_var

运行:

img

可变数量的参数声明方法

范例:

#!/usr/bin/ruby    #文件名decla_te.rb

def decla_te(*decla)
   puts "The number of parameters is #{ decla.length}"
   for i in 0... decla.length
      puts "The parameter is #{ decla [i]}"
   end
end
decla_te "Zara", "6", "F"
decla_te "Mac", "36", "M", "MCA"

运行:

$ ruby decla_te.rb

img

如果单个 decla 作为 decla_te 的参数,则调用时只能传一个参数,加上 * 后参数数量就是可变的了

类中的方法

如果您学习过 C++,那么您肯定对私有 (private) 和公有 (public) 不会陌生。

同样 Ruby 也是有 privatepublic 的,而且当方法定义在类定义外时则该方法默认被标记为 private,若在类定义中那么默认标记为 public

范例:

#!/usr/bin/ruby        #文件名为class_fun.rb

class Class_fun            #创建一个Class_fun类
    def fun1
        puts "This is the first test for class."
    end
    def fun2
        puts "This is the second test for class."
    end                #类中包括两个成员函数
end
test1=Class_fun.new
test2=Class_fun.new    #创建类Class_fun的两个对象
test1.fun1            #对象调用类的成员函数
test2.fun2

运行:

$ ruby class_fun.rb

img