class Hello#此处声明一个类Hello
greeting = "Hello,Matz!"#给变量greeting赋值
puts greeting#输出变量greeting
end
end
classs Goodbye <Hello #Goodbye类继承Hello类,也就是说hello类里面定义的方法howdy在 # goodbye里也有
def solong#这是goodbye类自己定义的方法,也就是说到现在goodbye里已经有两个方法了
farewell = "Goodbye,Matz!"
puts farewell
end
end
friendly = Goodbye.new#Goodbye类的实例化,生成对象friendly
friendly.howdy#对象调用类Goodbye中的方法,这个方法是继承自Hello的
friendly.solong#这个调用类Goodbye自己定义的方法
#输出结果为:
Hello,Matz!
Goodbye,Matz!
ruby中带“!"和不带"!"的方法的最大的区别就是带”!"的会改变调用对象本身了。比方说str.gsub(/a/,'b'),不会改变str本身,只会返回一个新的str。而str.gsub!(/a/,'b')就会把str本身给改了。但是gsub和gsub!还有另外一个不同点就是,gsub不管怎么样都会返回一个新的字符串,而gsub!只有在有字符被替换的情况下才会返回一个新的字符串,假如说没有任何字符被替换,gsub!只会返回nil.example:'abc'.gsub(/a/,'b')#返回'bbc''abc'.gsub!(/a/,'b')#返回'bbc''abc'.gsub(/d/,'a')#返回'abc''abc'.gsub!(/d/,'a')#返回nil