ruby中的方法相当于python的函数
其定义规则为:
方法名应以小写字母开头。如果您以大写字母作为方法名的开头,Ruby 可能会把它当作常量,从而导致不正确地解析调用。 方法应在调用之前定义,否则 Ruby 会产生未定义的方法调用异常。 def 开头 end结尾,里面的代码没用格式的要求,例如不要求缩进
例如:
[root@orl11-infa ruby-test]# cat test.rb def my_method(a1=1,b1=2) c=a1+b1 return c end kk=my_method 5,6 puts kk
[root@orl11-infa ruby-test]# ruby test.rb
11
我们把方法首字母大写 My_method
[root@orl11-infa ruby-test]# ruby test.rb
test.rb:5:in `<main>': undefined method `my_method' for main:Object (NoMethodError)
例如2 接收不确定的参数
[root@orl11-infa ruby-test]# cat test.rb #!/usr/bin/ruby ## -*- coding: UTF-8 -*- def my_method(*para) puts "参数的数量 #{para.length}" yy="" para.each do |temp| yy=yy+temp end puts yy return yy end kk=my_method "a","b","c" puts kk zz=my_method "one","two","three","four","five" puts zz 执行结果: [root@orl11-infa ruby-test]# ruby test.rb 参数的数量 3 abc abc 参数的数量 5 onetwothreefourfive onetwothreefourfive
-------------------------------------------------------------------------------------------------
使用for循环:
#!/usr/bin/ruby
## -*- coding: UTF-8 -*-
def my_method(*para)
puts "参数的数量 #{para.length}"
y=''
for i in para
y<< i
end
return y
end
kk=my_method "a","b","c"
puts kk
zz=my_method "one","two","three","four","five"
puts zz