#对象-34的绝对值 -34.abs #对一个浮点数进行四舍五入处理 10.8.round #返回一个字符串对象的大写且逆转的副本 "This is Ruby".upcase.reverse #返回数学sin方法的参数个数 Math.method(:sin).arity |
class Rectangle end |
class Rectangle def area (hgt,wdth) return hgt*wdth end end |
class Rectangle def area hgt, wdth hgt*wdth end end |
尽管上面代码是有效的,但是小括号还是被 推荐 使用于方法参数 表达 的,这主要是为了实现较好的可读性。
(在一些 语言 中也称为属性)。例如,由Rectangle类创建的对象应该都有一个高度和宽度。在Ruby中,实例变量不必显式地在类中声明,只是必须在它们的命名中以一个 特殊字符 来标记和使用。具体地说,所有的实例变量名都以"@"开头。为了实现当调用area 方法 时,存储矩形实例的高度和宽度,你仅需把实例变量添加到area方法即可:
class Rectangle def area (hgt, wdth) @height=hgt @width = wdth @height*@width end end |
class Rectangle def initialize (hgt, wdth) @height = hgt @width = wdth end def area () @height*@width end end |
Rectangle.new(4,7) |
Rectangle.new 4,7 |
class Rectangle def initialize (hgt, wdth) @height = hgt @width = wdth end def height return @height end def width return @width end def area () @height*@width end end |
class Rectangle def initialize (hgt, wdth) @height = hgt @width = wdth end def height return @height end def height=(newHgt) @height=newHgt end def width return @width end def width=(newWdth) @width=newWdth end def area () @height*@width end end |
aRectangle.height=27 |
class Rectangle attr_accessor :height, :width def initialize (hgt, wdth) @height = hgt @width = wdth end def area () @height*@width end end |
用交互式Ruby构建应用程序
现在,你已经知道如何构建一个简单的Ruby应用程序。为了展示Ruby解释器的交互性,让我们启动一个交互的Ruby帮助和控制台工具(使用Ruby安装的fxri工具),见图6。
irb(main):013:0> Rectangle.new(6,5).area() => 30 |
class Rectangle def circumference () @height * 2 + @width * 2 end end |
irb(main):014:0> class Rectangle irb(main):015:1> def circumference() irb(main):016:2> @height * 2 + @width * 2 irb(main):017:2> end irb(main):018:1> end => nil irb(main):019:0> Rectangle.new(2,3).circumference => 10 |
irb(main):020:0> class Rectangle irb(main):021:1> def area() irb(main):022:2> @height*2 irb(main):023:2> end irb(main):024:1> end => nil irb(main):025:0> Rectangle.new(6,5).area => 12 |
class String def area() length() end end |
irb(main):026:0> class String irb(main):027:1> def area() irb(main):028:2> length() irb(main):029:2> end irb(main):030:1> end => nil irb(main):031:0> "Jim".area => 3 |