#{ expression } 表达式替换
def sayGoodnight(name)
result = "Goodnight, #{name}"
result = "Goodnight, " + name
return result
end
上下2个result的函数 一样
变量 | 全局变量 | 实例变量 | 类变量 | 类名 |
name | $debug | @name | @@total | PI |
fishAndChips | $CUSTOMER | @point_1 | @@symtab | FeetPerMile |
x_axis | $_ | @X | @@N | String |
thx1138 | $plan9 | @_ | @@x_pos | MyClass |
_26 | $Global | @plan9 | @@SINGLE | Jazz_Song |
class/module name must be CONSTANT 报错
是因为类名书写错误.ruby的类名必须前一个字母大写
Ruby中的类以class开始 以end结束,类名首字母的约定是大写。
Ruby中的方法以def开始 以end结束,方法名首字母的约定是小写。
Ruby中的局部变量名首字母的约定是小写。
Ruby中的构造函数名称为initialize。
Ruby中的成员变量(实例变量)前导@符,在initialize里进行声明与初始化。
Ruby中的属性用attr_writer和attr_reader声明,分别对应c#的set,get,使用了attr_accessor是可读也可写
Ruby中的全局变量前导$符。
Ruby中的常数(常量)用大写字母开头,约定是全部大写。
class Rectangle
def initialize(width )
@width = width
end
def width=(wdth)
@width = wdth
end
end
r = Rectangle.new(2)
puts r.width = 5 # 这里是调用width= 方法! Ruby真是变态,方法名也可以这么写?!
puts r.width # 错误@width 要用attr_accessor 修饰才能读写.