在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
(一)Ruby中一切都是对象,包括一个常数. (二)Ruby语法 Ruby中任何的表达式都会返回值,sample
class Rectangle
def initialize(wdth, hgt) @width = wdth @height = hgt end def width=(wdth) @width = wdth end end r = Rectangle.new(2,3) puts r.width = 5 #output 5 puts r.width # error! because the width not support read 继续补充下attr_accessor的使用,sample class Rectangle attr_accessor :width attr_accessor :height attr_accessor :width2 attr_accessor :height2 def initialize(wdth, hgt) @width = wdth @height = hgt end def area() return @width * @height end def area2() return @width2 * @height2 end end r = Rectangle.new(2,3) r.width = 5 # give samename's variable value r.height = 5 puts r.area() #outputs is 25 r.width2 = 6 # not samename's variable create r.height2 = 6 puts r.area2() # outputs is 36 上面的代码说明了,在使用attr_accessor的时候,会寻找是否有同名的成员变量,如果有则访问同名成员变量,如果没有会默认创建一个前导@的成员变量 (三)神奇的操作符重载 class Rectangle attr_accessor :width attr_accessor :height def initialize(wdth, hgt) @width = wdth @height = hgt end def area() return @width * @height end def +(addRectangle) return self.area + addRectangle.area end end r1 = Rectangle.new(2,2) r2 = Rectangle.new(3,3) puts r1+r2 # operator override puts r1+(r2) puts r1.+(r2) # standard function calling format 神奇吧,其实把+号理解为一个函数的名字最好不过了,就像最后一个写法,哈哈。 (四)参数的传递 1.参数的默认值
class Rectangle
attr_accessor :width attr_accessor :height def initialize(wdth = 2, hgt = 2) @width = wdth @height = hgt end def area() return @width * @height end end r1 = Rectangle.new puts r1.area 看到了吧,使用默认值了
class ParamSample
可以看出,可变长参数前缀*号,可变长参数的实质是一个Array,呵呵。
def sayHello(*names) puts names.class puts "Hello #{names.join(",")}!" end end ps = ParamSample.new ps.sayHello #output Array Hello ! ps.sayHello("lee","snake") #output Array Hello lee,snake! |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论