当前位置:编程学习 > 网站相关 >>

Ruby on Rails 入门之:(11) Ruby中的类方法

在Ruby的类中,添加方法和其他的语言一样,而且方法也可以包含参数,也有返回值,也有默认参数。

 


Ruby类中的方法的的默认参数和其他任何语言的都一样,默认的函数参数只能从最后的参数开始,不能有间隔。

 


在类中,使用def 定义一个方法

 


在Ruby中,定义方法的参数可以不用小括号来标识,如果省略小括号,方法名和参数之间需要用空格分开,调用方法的时候也可以省略括号。

 

 

[ruby]
#encoding:gbk  
 
class Animal 
    def eat(food) 
        puts "i eat " + food; 
    end 
end 
 
a = Animal.new; 
a.eat("rice"); 
a.eat "choloate"; 

#encoding:gbk

class Animal
 def eat(food)
  puts "i eat " + food;
 end
end

a = Animal.new;
a.eat("rice");
a.eat "choloate";
我个人一直认为Ruby中这个函数可以有括号可以没有括号的规则有点不爽,感觉怪怪的,可能是写其他的语言的程序写习惯了吧,也可能有它存在的好处,只是我还没有发现。

 


Ruby代码由表达式构成,每一个表达式都有一个返回值。调用方法的语句也是一个表达式,所有也有返回值。Ruby允许方法返回一个值,任何方法的返回值都是方法最后执行的表达式的结果,如果有return可以使用return语句显示的返回一个返回值。

 

 

[ruby]
#encoding:gbk  
 
class Animal 
    def eat(food) 
        puts "i eat " + food; 
    end 
 
    def add a,b 
        return a+b; 
    end 
end 
 
a = Animal.new; 
a.eat("rice"); 
a.eat "choloate"; 
 
result = a.add(1,1); 
puts result; 
result = a.add 1,1; 
puts result; 

#encoding:gbk

class Animal
 def eat(food)
  puts "i eat " + food;
 end

 def add a,b
  return a+b;
 end
end

a = Animal.new;
a.eat("rice");
a.eat "choloate";

result = a.add(1,1);
puts result;
result = a.add 1,1;
puts result;

Ruby中的特殊方法:

 


我们可以为一个对象追加一个方法,这个方法只是属于这个具体的对象实例。

 

 

[ruby]
#encoding:gbk  
 
class Animal 
    def eat(food) 
        puts "i eat " + food; 
    end 
 
    def add a,b 
        return a+b; 
    end 
end 
 
a = Animal.new; 
a.eat("rice"); 
a.eat "choloate"; 
 
result = a.add(1,1); 
puts result; 
result = a.add 1,1; 
puts result; 
 
def a.show 
    puts "added method to a"; 
end 
 
a.show; 

#encoding:gbk

class Animal
 def eat(food)
  puts "i eat " + food;
 end

 def add a,b
  return a+b;
 end
end

a = Animal.new;
a.eat("rice");
a.eat "choloate";

result = a.add(1,1);
puts result;
result = a.add 1,1;
puts result;

def a.show
 puts "added method to a";
end

a.show;

定义类方法


和其他的语言一样,Ruby中也可以定义类方法。


[ruby]
#encoding:gbk  
 
class Animal 
 
    def Animal.show 
        puts "i am class Animal"; 
    end 
 
 
    def eat(food) 
        puts "i eat " + food; 
    end 
 
    def add a,b 
        return a+b; 
    end 
end 
 
a = Animal.new; 
a.eat("rice"); 
a.eat "choloate"; 
 
result = a.add(1,1); 
puts result; 
result = a.add 1,1; 
puts result; 
 
def a.show 
    puts "added method to a"; 
end 
 
a.show; 
 
puts Animal.show; 

#encoding:gbk

class Animal

 def Animal.show
  puts "i am class Animal";
 end


 def eat(food)
  puts "i eat " + food;
 end

 def add a,b
  return a+b;
 end
end

a = Animal.new;
a.eat("rice");
a.eat "choloate";

result = a.add(1,1);
puts result;
result = a.add 1,1;
puts result;

def a.show
 puts "added method to a";
end

a.show;

puts Animal.show;
类方法不一定要放在类中,他也可以放在类的外部单独生命。不过如果类方法声明在类中,就可以使用self关键字来代替类名。

补充:Web开发 , 其他 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,