赵龙 全栈之路

ruby 语法基本结构

| Comments

在 ruby 中,一切皆对象。

对象本质上就是状态加行为,状态保存于实例变量中,相同类的不同对象可以拥有不同的状态。

代码影响范围:类 > 模块 > 方法 > 块

类:表示对象的种类,所有对象都属于一种类。

类的程序语法
class 类名 # 类名的首字母必须大写
  类的定义
end
  • 实例:类的对象。
  • 继承:通过扩展已经定义的类创建新类的过程。
  • 父类:被继承的类。
  • 子类:创建的新类。 -
“类的继承”的程序语法
class 类名 < 父类名
  类的定义
end
“单例方法”程序语法实例
class << HeloWorld
  def hello(name)
   puts "#{name} said hello."
  end
end 

HelloWorld.hello("John")    #=> John said hello.

模块:与类表现形式相似,只表示事物的行为本身。

模块的程序语法
  module 模块名 # 模块名的首字母必须大写
    模块定义
  end
  • 模块不能拥有实例(对象)。
  • 模块不能被继承。
    • 定义类时使用 include,模块中的方法、常量就能被类使用。
  • 模块函数:使用 “模块名.方法名” 的形式调用模块中定义的方法。
    • 如果没有定义与模块的方法、常量等同名的名称,那么引用时就可以省略模块名。

方法:在 Ruby 中,所有有关对象的操作都被封装为方法。

方法的程序语法
  def 方法名(参数1,参数2,···)
    希望执行的处理
  end
  • 实例方法:接受者为一个对象(实例)的方法。
  • 类方法:接受者是类本身(类对象)的方法。
  • 函数式方法:没有接受者的方法。
  • 方法的标记法:“类名.方法名”、“类名::方法名”(与实际程序语法一致);“类名#方法名”(帮助文档或使用说明使用)。

块:调用方式时能与参数一起传递的多个处理集合。

“带块的方法调用”的程序语法
  对象.方法名(参数列表) do |块变量|
    希望循环的处理
  end
  
  或
  
  对象.方法名(参数列表) { |块变量|
    希望循环的处理
  }

Comments

comments powered by Disqus