`
凌川__
  • 浏览: 84030 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

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    
 

分享到:
评论

相关推荐

    mysql5.5安装包

    Mysql5.5安装包,下载后解压运行steup.bat开始安装,安装过程中在选择语言的时候记得选UTF-8,否则后续使用过程中会出现一些列的乱码问题,解决起来比较 麻烦,所以建议安装的时候就选好UTF-8作为默认编码,其他也没...

    MySQL5.5安装包

    建议选择“UTF-8”,这是目前最通用的编码格式,能支持多种语言,避免了因编码问题导致的数据丢失或乱码。 4. **设置密码**:紧接着,你需要为root用户设置一个安全的密码。确保密码包含大写字母、小写字母、数字和...

    vxworks_programmers_guide5.5.pdf

    在开始学习之前,建议查阅与本书相关的其他文档资源,以便更好地理解和应用VxWorks的功能。这些资源可能包括官方手册、API文档、示例代码等。 #### 3. VxWorks配置与构建 本章节介绍了如何设置VxWorks开发环境以及...

    MyEclipse 5.5 注册码 好不容易找到的. 绝对能用

    在探讨本次提供的信息之前,首先需要明确几个关键...综上所述,虽然本文提供了关于如何使用特定注册码激活MyEclipse 5.5的信息,但在实际操作过程中建议用户通过正规渠道购买正版软件,以获得更安全、稳定的使用体验。

    MySQL数据库社区版5.5安装方法

    但为了优化性能或磁盘空间管理,建议自定义这些路径,例如可以将数据库文件放置在D盘或E盘等其他非系统分区上。 #### 五、配置服务类型和网络端口 接下来是“服务类型和网络端口”配置页。这里可以设置MySQL服务的...

    Tomcat 5.5.rar

    Servlet 2.4规范引入了更多的注解,增强了过滤器和监听器的功能,以及对URL编码和MIME类型处理的改进。JSP 2.0则带来了EL(Expression Language)的增强,使得开发者可以更方便地在JSP页面中访问JavaBean属性,同时...

    jdk1.5和Tomcat5.5安装部署详解

    【JDK1.5安装详解】 Java Development Kit (JDK) 是Java编程语言的核心组件,提供了编译、调试和运行Java应用程序所需的工具和...不过,由于这两个版本较旧,建议学习和使用最新稳定版,以便获取更好的性能和安全性。

    mysql5.5 免安装版

    同时,为了管理和维护多个实例,建议分别创建不同的数据目录,每个实例对应一个独立的配置文件,以区分不同的数据库设置。 总之,MySQL 5.5免安装版为需要快速部署和管理多个数据库实例的用户提供了一个方便的选择...

    CCS5.5安装包

    1. **代码提示**:利用CCS5.5的代码提示功能可以提高编码速度,减少错误。 2. **调试工具**:熟练掌握各种调试工具的使用,比如断点设置、单步执行等,能够快速定位和解决问题。 3. **性能分析**:CCS5.5提供了强大...

    N8相册设计软件3.5 3.9 5.5注册机

    该软件的版本包括3.5、3.9和5.5,每个版本都有其独特的功能和优化,以满足不同用户的需求。 在描述中提到的"注册机"是用于生成N8相册设计软件的注册码的工具。通常,这类软件需要用户购买并激活才能获得完整功能。...

    解决vm8.0安装rhe5.5后乱码问题

    为了解决这个问题,我们需要对系统环境进行一些配置调整,下面将详细介绍整个解决过程。 1. **理解字符集与乱码**: - 在Linux系统中,字符集(Character Set)用于定义系统如何存储和显示文本,特别是非英文字符...

    Zend Guard Loader for PHP 5.5

    Zend Guard Loader 是一款由 Zend Technologies 开发的 PHP 编码保护工具,专用于 PHP 5.5 版本。它允许开发者对他们的 PHP 代码进行加密,以防止未经授权的复制、修改或反编译,从而保护知识产权。这款工具在PHP...

    RedHatAS5.5安装Oracle.docx

    安装Oracle时,建议禁用SELinux或在系统中配置为非强制模式,同时关闭防火墙,因为它们可能会引起一些兼容性和连接问题。这可以通过修改配置文件并重启相关服务来实现。 3. **系统语言选择**: 为了避免在Oracle...

    Mysql5.5,Mysql Workbench卸载与安装.docx

    - 在配置向导中,依次设置服务器类型(开发机器或生产服务器)、数据库用途(多用途服务器或事务处理)、数据存储位置(建议不在安装目录下)、预期连接人数、字符集(推荐选择支持UTF-8的编码)等。 - 设置root...

    bcc5.5命令行unicode,不能链接到c0w32w.obj解决方案

    然而,在处理Unicode编码时,bcc5.5可能会遇到一些兼容性问题。 #### 错误原因分析 当bcc5.5在构建Unicode项目时出现“不能链接到c0w32w.obj”的错误,主要原因是bcc5.5默认的链接器设置与Windows平台上的Unicode...

    MyEclipse注册机(可注册5.5及5.5以前版本).txt

    因此,强烈建议用户通过合法途径获取MyEclipse许可证,支持正版软件的发展。如果遇到软件授权问题,应直接联系软件供应商寻求解决方案,而不是寻找非法途径。这样既能避免法律纠纷,也能维护良好的市场秩序和个人...

Global site tag (gtag.js) - Google Analytics