5.5 一些编码建议

这里不是 Ruby语言的编码约定,只是建议,很少的一些建议。在语法正确的前提下,你可以按照自己的编码风格自由组织你的代码。


一. 命名
常量全用大写的字母,用下划线分割单词。例如:MAX, ARRAY_LENGTH。
类名和模块名用大写字母开头的单词组合而成。例如:MyClass, Person。
方法名全用小写的字母,用下划线分割单词。例如:talk, is_prime?。在Ruby里,有时将“!”和“?”附于某些方法名后面。惊叹号“!”暗示这个方法具有破坏性, 有可能会改变传入的参数。问号“?”表示这个方法是一个布尔方法,只会返回 true 或 false。
变量和参数用小写字母开头的单词组合而成。例如:name, currentValue。
类名、模块名、变量名、参数名最好使用“名词”或者“形容词+名词”。方法名最好使用“动词”或者“动词+名词”。例如:aStudent.talk 。    

                                                                                                                                                  
二. 空格和圆括号
关键字之后要留空格。
逗号“,”、 分号“;”之后要留空格。 “,”、 “;”向前紧跟,紧跟处不留空格。
赋值操作符、比较操作符、算术操作符、逻辑操作符,如“=”、“+=” “>=”、“<=”、“+”、“*”、“%”、“&&”、“||”等二元操作符的前后应当加空格。
一元操作符如“!”、“~”等之后不加空格。
象“[]”、“.”、“::”这类操作符前后不加空格。
函数名之后不要留空格,紧跟左圆括号“(”,以与关键字区别。左圆括号“(”向后紧跟,右圆括号“)”向前紧跟,紧跟处不留空格。

Ruby里圆括号常常被省略,看程序 E5.5-1.rb :

ruby 代码
  1. #E5.5-1.rb     
  2.   
  3. def  talk name   
  4.   "Hi! " + name   
  5. end  
  6.   
  7. puts talk "kaichuan"      # => Hi! kaichuan   
  8. puts talk("kaichuan")     # => Hi! kaichuan   
  9. puts (talk "kaichuan")    # => Hi! kaichuan   
  10. puts (talk("kaichuan"))    # => Hi! kaichuan  

 优先规则会自动确定哪个参数被哪个方法使用。但是,生活并不总是美好的,事情经常变得复杂,看程序 E5.5-2.rb : 

ruby 代码
  1. #E5.5-2.rb     
  2.   
  3. a=5   
  4. b=3   
  5. puts   a>b  ?  "a>b"  :  "bbb"           # =>  a>b   
  6. puts   (a>b)? ("a>b") : ("bbb")          # =>  a>b   
  7. #puts   a>b?  "a>b"  :  "bbb"           错误语句  

 最后一条语句,变量b 与三元条件运算符的问号“?”之间没有空格,没有圆括号,产生错误。所以建议除了极简单的情况,还是使用圆括号为好。


圆括号还可以把几个语句约束成一个语句集合,看程序 E5.5-3.rb :

ruby 代码
  1. #E5.5-3.rb     
  2.   
  3. a = 3   
  4.  b = 1;  a += b    if  3 > 5   
  5. print   "a = ", a, "\n"             # =>  a = 3   
  6. print   "b = ", b, "\n"             # =>  b = 1   
  7.   
  8. c = 3   
  9. (d = 1;  c += d)  if  3 > 5   
  10. print   "c = ", c, "\n"            # =>  c = 3   
  11. print   "d = ", d, "\n"            # =>  d = nil  

 条件为假,语句集合里的变量d 没有被赋值。

三. 使用 return
你在定义方法的时候,在最后一行可以显式地 return 某个值或几个值,但却不是必须的。 Ruby 方法的最后一行语句如果是表达式,表达式的值会被自动返回;最后一行语句如果不是表达式,就什么也不返回。
return 并不仅仅用在方法的最后一行。使用 break 你能够跳出本层循环,如果要从多重循环体中跳出,可以使用return ,结束这个方法; return还能够从方法的某个执行点立即退出,而不理会方法的其余代码,例如程序 E3.12-1.rb 的方法 is_prime?。


四. 注释
养成写注释的习惯吧!你见过没有路标的高速公路吗?
注释表明了一段代码块的功能、意图或是代码块的解释,应该简洁明了,错误的注释不如没有注释。一般地,注释的位置应与被描述的代码相邻,可以放在代码的上方或右方,不要放在代码的下方。


完整阅读,请看我写的 Ruby语言中文教程all in one    
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值