一些编码建议
这里不是 Ruby语言的编码约定,只是建议,很少的一些建议。在语法正确的前提下,你可以按照自己的编码风格自由组织你的代码。
一. 命名
常量全用大写的字母,用下划线分割单词。例如:MAX, ARRAY_LENGTH。
类名和模块名用大写字母开头的单词组合而成。例如:MyClass, Person。
方法名全用小写的字母,用下划线分割单词。例如:talk, is_prime?。在Ruby里,有时将“!”和“?”附于某些方法名后面。惊叹号“!”暗示这个方法具有破坏性, 有可能会改变传入的参数。问号“?”表示这个方法是一个布尔方法,只会返回 true 或 false。
变量和参数用小写字母开头的单词组合而成。例如:name, currentValue。
类名、模块名、变量名、参数名最好使用“名词”或者“形容词+名词”。方法名最好使用“动词”或者“动词+名词”。例如:aStudent.talk 。
二. 空格和圆括号
关键字之后要留空格。
逗号“,”、 分号“;”之后要留空格。 “,”、 “;”向前紧跟,紧跟处不留空格。
赋值操作符、比较操作符、算术操作符、逻辑操作符,如“=”、“+=” “>=”、“<=”、“+”、“*”、“%”、“&&”、“||”等二元操作符的前后应当加空格。
一元操作符如“!”、“~”等之后不加空格。
象“[]”、“.”、“::”这类操作符前后不加空格。
函数名之后不要留空格,紧跟左圆括号“(”,以与关键字区别。左圆括号“(”向后紧跟,右圆括号“)”向前紧跟,紧跟处不留空格。
Ruby中圆括号常常被省略,看程序 E5.5-1.rb :
#E5.5-1.rb
def talk name
"Hi! " + name
end
puts talk "kaichuan" #Hi! kaichuan
puts talk("kaichuan") #Hi! kaichuan
puts (talk "kaichuan") #Hi! kaichuan
puts (talk("kaichuan")) #Hi! kaichuan
优先规则会自动确定哪个参数被哪个方法使用。但是,生活并不总是美好的,事情经常变得复杂,看程序 E5.5-2.rb :
#E5.5-2.rb
a=5
b=3
puts a>b ? "a>b" : "a<=b" # a>b
puts (a>b)? ("a>b") : ("a<=b") # a>b
#puts a>b? "a>b" : "a<=b" 错误语句
最后一条语句,变量b 与三元条件运算符的问号“?”之间没有空格,没有圆括号,产生错误。所以建议除了极简单的情况,还是使用圆括号为好。
圆括号还可以把几个语句约束成一个语句集合,看程序 E5.5-3.rb :
#E5.5-3.rb
a = 3
b = 1; a += b if 3 > 5
print "a = ", a, "\n" # a = 3
print "b = ", b, "\n" # b = 1
c = 3
(d = 1; c += d) if 3 > 5
print "c = ", c, "\n" # c = 3
print "d = ", d, "\n" # d = nil
条件为假,语句集合里的变量d 没有被赋值。