`
凌川__
  • 浏览: 82381 次
  • 性别: 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作为默认编码,其他也没...

    追梦智能Flash网站管理系统FCMS v5.5.rar

    追梦FCMS5.4是梦想网络第5套flash模板系统,为5.3升级版,追梦flash网站模板5.4版本增加了一些新的功能,也修复了一些bug,追梦5系列模板不断完善起来,有很多人提了很多建议,也提出了很多方案,我们只能选择性的...

    小日本视频转换器

    7)VBV缓冲区大小:缓冲区大的话,编码优化会好一些,但是解码的时候也要求大一些的缓冲区。因此,vcd/svcd标准中参数是固定的,否则可能机器无法播放。 8)Pofile & level(类别与级别): 这个参数是mpeg1没有的。...

    Java高校学生考勤管理系统设计与实现毕业论文

    3.9.2 建议配置 12 第4章 总体设计 13 4.1 引言 13 4.2 系统布局设计 13 4.3 总体结构图 14 4.4 本人主要工作任务 15 第5章 详细设计 16 5.1 引言 16 5.2 系统功能流程图 16 5.3系统目录结构设计 17 5.4 数据库设计...

    2023新版塔罗网站源码起名附带搭建视频及文本教程【源码+教程】

    1、建议在服务器上面安装宝塔面板,以便操作,高逼格技术员可以忽略这步操作。 2、把安装包文件解压到根目录,同时建立数据库,把数据文件导入数据库 3、修改核心文件config/inc_config.php把数据库信息替换成你的...

    基于后合并MIMO-HARQ系统的线性预编码 (2007年)

    为了充分利用多天线系统中后合并混合自动重传请求(HARQ)结构...仿真结果表明,当传输次数为4时,所建议的方案相对于空间复用方案在误比特率为10-4时约有5.5dB的信噪比增益,并且随着重传次数的增加性能差异更加明显。

    孔雀石DSP中文说明书-未完.docx

    2自组装建议。 5 3接收器的外观。控制和结构要素6 4打开和关闭接收器。 9 5个用户界面。 10 5.1主屏幕指示灯10 5.2常规菜单12 5.3 HARD菜单13 5.4时钟菜单17 5.5 LCD菜单18 5.6音频20菜单 6基本功能及其使用22 6.1...

    编程高手箴言.rar

    5.7 建议采用的一些规则 5.8 可灵活运用的一些规则 5.9 标准化代码示例 5.10 成对编码规则 5.10.1 成对编码的实现方法 5.10.2 成对编码中的几点问题 5.11 正确的成对编码的工程编程方法 5.11.1 编码前的工作 ...

    管理系统软件开发流程

    5.1.4 系统模块分配(编码) 4 5.1.5 单元测试 4 5.2 测试与执行 4 5.2.1 功能性测试 4 5.2.2 性能、效率测试 4 5.2.3 安全性测试 4 5.2.4 压力测试 4 5.2.5 可靠性测试 4 5.2.6 模拟各种环境安装测试 5 5.3 内部...

    编程高手箴言(推荐)

    5.7 建议采用的一些规则 236 5.8 可灵活运用的一些规则 238 5.9 标准化代码示例 239 5.10 成对编码规则 243 5.10.1 成对编码的实现方法 243 5.10.2 成对编码中的几点问题 248 5.11 正确的成对编码的工程编程方法 251...

    PHP海洋cms(海洋视频内容管理系统)

    建议使用Mysql的5.5/5.6版本以实现最高执行效率。 # 组件要求 | PHP:本程序支持PHP5.2及以上版本 | MySQL:必须开启MySQLi扩展,否则无法连接数据库 | fsockopen:不支持将导致采集、远程资料本地化等功能无法...

    Linux系统Mysql数据库详细安装教程!.pdf

    卸载这个软件 rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64 这时要下载mysql 的 repo源,建议⽤阿⾥云源,这⾥我们就⽤迅雷去下载repo源会好些 3.先下载迅雷(wget)并安装好 yum install -y wget 5.开始安装...

    CDMA技术介绍

    1.7 CDMA系统的建议标准 6 第二章 关键技术 7 2.1 功率控制 7 2.1.1 功率控制概述 7 2.1.2 功率控制分类 8 2.1.3 反向开环功率控制算法 8 2.1.4 反向闭环功率控制算法 9 2.2 地址码的选择 10 2.3 软切换 11 2.4 分集...

    数据通信原理与技术

    5.5 PAD相关协议……………… 5.5.1PAD建议及功能………… 5.5.2 又3镁窥义———hhu。——… 55.3 又2a建议……………… 5.5.4x 29建议……………… 5.6x.75/及32/x.121建议…… 561 x.75建议...

    JSP家庭理财管理系统论文

    5.5家庭收支模块 3 5.6银行账户管理模块 3 5.7统计模块 3 6 编码 3 6.1 概述开发工具及编程脚本 3 6.1.1 WEB服务器简介 3 6.1.2 MYSQL数据库系统简介 3 6.1.3 JSP简介 3 6.2 脚本习惯说明 3 6.3 编码 3 7 测试 3 ...

    编程高手箴言(中文完整版)(13M)

    5.7 建议采用的一些规则 236 5.8 可灵活运用的一些规则 238 5.9 标准化代码示例 239 5.10 成对编码规则 243 5.10.1 成对编码的实现方法 243 5.10.2 成对编码中的几点问题 248 5.11 正确的成对编码的工程编程方法 251...

    VB+ACCESS编制的图书管理系统的设计与实现

    5.5常见提示信息样式 6 5.6常见错误信息样式 7 5.7其他界面约定 7 六、软件编码设计标准与规范 7 6.1对象命名约定 7 6.2常量和变量命名约定 8 6.3结构化编码约定 8 6.4数据源的约定 9 6.5数据库访问约定 9 6.6其他...

    ERP标准模板

    5.5 从营销管理方面 16 6 企业报表 17 6.1 化纤企业的外部报表 17 6.2 化纤企业的内部报表 18 依据中国石化ERP项目整体规划、试点推进的战略部署,根据中国石化ERP项目指导委员会和ERP试点项目领导小组...

    人事档案管理系统源码 v5.0.0.zip

    人事档案管理系统适用于中小企业以及微型企业的人事管理系统。 人事档案管理系统采用utf8的编码方式,采用...5、环境要求:php5.5版本及以上,建议用php7 人事档案管理系统截图 相关阅读 同类推荐:站长常用源码

Global site tag (gtag.js) - Google Analytics