`
xvridan
  • 浏览: 37426 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Ruby 编码规定(转RUBY文档中心)

阅读更多
语句定界符

有些语言需要一定类型的标点,一般会是分号(;)来结束程序的每一语句.Ruby却采用了shell里的sh和csh的方便做法.一行中的多个语句由分号分开,但在行尾分号却并不需要;一个换行被看作一个分号.如果行以反斜杠(\)结束,随后的换行将忽略;这就允许你的单个逻辑行可以跨越数行.

注释

为什么写注释?虽然良好的代码可自成文档,但那种自以为别人能看懂并按你的方式很快去理解的想法是错误的.除此之外,你自己在离开数天后也会是另一个人;一段时间后我们忘了我们还未修补或增强程序中的哪些部分,你会说,我知道我写了这个的,但我究竟写的是些什么?

一些有经验的程序员会相当正确地指出,矛盾的和过期的注释比没有强.当然,有了注释并不意味着代码的可读性;如果你的代码不清晰,它也许是多虫的.当你学习Ruby的时候,你会发现自己需要更多的注释;然后当你可以通过更简单,优雅,可读的代码来表达思想时,它们就会减少.

Ruby遵从一些普遍的书写习惯,用井号(#)表示注释的开始.跟在#号后面直到#号这行结束为止的代码都将被解释器忽略.

同时,为了方便写大块的注释, Ruby解释器省略以"=begin"和"=end"开始的行中间的一切.

#!/usr/bin/env ruby
=begin
**********************************************************************
  This is a comment block, something you write for the benefit of
  human readers (including yourself).  The interpreter ignores it.
  There is no need for a '#' at the start of every line.
**********************************************************************
=end 


组织你的代码

Ruby读到什么就处理什么.没有编译处理;如果有什么还没读到,就被简单地认为未定义.

# this results in an "undefined method" error:
print successor(3),"\n"
def successor(x)
  x + 1
end 


这并不是像一开始认为的那样,强迫你以从上至下的方式组织你的代码.只要你确保其在调用前将被定义,当解释器遇到一个方法定义时,它能安全地接受暂未定义的引用.

# Conversion of fahrenheit to celsius, broken
# down into two steps.
def f_to_c(f)
  scale(f - 32.0)  # This is a forward reference, but it's okay.
end
def scale(x)
  x * 5.0 / 9.0
end
printf "%.1f is a comfortable temperature.\n", f_to_c(72.3) 


所以,一方面看起来比使用Perl或Java要稍稍不方便一些,但却没有写C那么严格(要求你永远维持所指的部分排序).将最高层的代码放在源文件的最后总是可行的.即使这样也比看见时要好的多.一个明智而无痛苦的好办法是将main定义在文件顶端,再在底端调用它.

#!/usr/bin/env ruby
def main
  # Express the top level logic here...
end
# ... put support code here, organized as you see fit ...
main # ... and start execution here. 


Ruby也提供了将复杂程序分割为可读,可重用,逻辑相关的大块的工具.我们已看到用 include 来访问模块.你将发现 load 和 require 也很有用.load的作用类似于文件的复制加粘贴(和C的#include处理器指令相似).require更复杂,仅在需要时才加载,而且最多加载一次.load和require还有其它一些区别;在语言手册,FAQ中可找到更多信息.


无衣 2007-02-08 17:06 发表评论
分享到:
评论

相关推荐

    ruby的API文档,有需要同事请下载

    Ruby的API(应用程序接口)文档是开发者理解和使用Ruby语言的重要资源,它详细介绍了Ruby的标准库、类、模块、方法等核心组件。Ruby 1.9.3是其历史上的一个重要版本,此版本引入了许多改进和新特性。 1. **Ruby的...

    Ruby数据结构简介 word文档

    Ruby数据结构简介 word文档

    ruby1.9.1文档和一本pdf

    本压缩包包含的资源是关于 Ruby 1.9.1 的文档和一本 PDF 文件,可能是对该版本的深入解析或教程。 首先,让我们来探讨 Ruby 1.9.1 的主要变化和特性: 1. **语法增强**:Ruby 1.9 引入了新的语法特性,如元编程的...

    Ruby中文文档.rar

    - Ruby有丰富的测试框架,如RSpec、Test::Unit和MiniTest,鼓励开发者进行测试驱动的编码实践。 通过阅读"Ruby中文文档.CHM",你将能够逐步熟悉并熟练掌握这些概念和技术,为你的Ruby编程之路打下坚实的基础。文档...

    Ruby-QRcode一个用于解析QR码的Ruby库

    在实际项目中,Ruby-QRcode可以与其他库结合使用,比如与Sinatra或Rails框架结合,生成网页上的QR码,或者与PDF生成库一起,将QR码嵌入到文档中。 此外,Ruby-QRcode库也支持SVG输出,这对于在Web应用中生成响应式...

    Ruby-twittercldrrbICU的Ruby实现

    Ruby-twittercldrrb是基于ICU(International Components for Unicode)的一个Ruby库,主要用于处理国际化(i18n)和本地化(l10n)任务。这个库为Ruby开发者提供了一套强大的工具,用于在应用程序中实现多语言支持...

    ruby mail资料

    这个压缩包可能包含了一系列关于如何使用 Ruby Mail 库的文档、示例代码或者教程。 Ruby Mail 的核心功能包括: 1. **邮件构造**:Ruby Mail 允许开发者通过提供必要的头部信息(如发件人、收件人、主题等)和邮件...

    Ruby-Mail一个Ruby邮件库

    **Ruby-Mail:深入理解Ruby邮件库** Ruby-Mail是一个强大的Ruby库,专为处理电子邮件而设计。这个库使得在Ruby应用程序中创建、解析、发送和接收邮件变得轻而易举。Mail库提供了丰富的功能,包括解析MIME(多用途...

    ruby 1.9.3

    至于压缩包中的"ruby-1.9.3-p327",这是Ruby 1.9.3的一个具体发行版,其中可能包含了源码、编译工具、文档以及其他必要的文件,方便用户在不同平台上安装和使用Ruby 1.9.3。通常,开发者会通过解压这个文件,然后...

    ruby for eclipse 插件安装

    建议仔细研读这份文档,结合实际编码练习,加深对Ruby的理解。 总之,Ruby for Eclipse插件是Ruby开发者在Eclipse环境中不可或缺的工具,它提升了开发效率,简化了项目管理和调试流程。配合高质量的学习资料,如`...

    Ruby-GeokitGeokitgem提供了地理编码和距离计算

    Ruby-Geokit是一个强大的开源库,专为Ruby开发者设计,用于处理与地理位置相关的任务,如地理编码、反向地理编码以及进行距离和方向的计算。这个gem极大地简化了在Ruby应用中集成地理服务的工作,使得开发者能够轻松...

    ruby with mongodb

    标题:"Ruby with MongoDB",描述:"用ruby开发web,使用nosql数据库,mongodb",标签:"ruby mongo db",这些信息揭示了文档主要讲述如何使用Ruby语言结合MongoDB数据库来开发Web应用,强调了MongoDB作为NoSQL...

    ruby-1.9.1-p0-i386-mswin32.rar

    Ruby 1.9.1中已经内置了JSON支持,能够方便地进行JSON数据的编码和解码。 5. 配置脚本和安装向导:指导用户完成安装过程,并根据用户的系统配置进行适当的设置。 6. 文档:包括API参考、教程和示例代码,帮助用户...

    绿色版 Ruby 1.9.2 For Windows 64 发布

    1. **字符串编码支持**:1.9.2开始支持Unicode编码,使处理多语言文本变得更加容易,为开发全球化应用提供了便利。 2. **块参数语法**:引入了新的块参数语法,允许更直观地处理代码块,如`|a, b|`,使得代码更加...

    Sketchup ruby editor

    7. **文档支持**:可能集成了Ruby和SketchUp API的参考文档,方便用户查找函数和方法。 8. **版本控制**:可能与Git等版本控制系统集成,便于版本管理和协同开发。 在压缩包文件中,`as_rubyeditor.rb`可能是一个...

    Ruby Eclipse插件

    10. **集成文档**:集成Ruby文档和Rails API,可以在编码时随时查阅相关API和方法信息。 安装Ruby Eclipse插件非常简单,只需要将下载的压缩包解压后,将其中的插件文件复制到Eclipse的安装目录下的“dropins”...

    Ruby-阿里云API文档中的公共参数计算

    在Ruby编程语言中,与阿里云API交互时,开发者经常需要处理一些公共参数,这些参数是请求接口必不可少的部分。阿里云API的公共参数通常包括AccessKeyId、SignatureMethod、SignatureVersion、Timestamp、Format、...

    ruby-style-guide:社区驱动的Ruby编码风格指南

    《Ruby编码风格指南》是社区驱动的一份重要资源,它为Ruby程序员提供了统一的编码规范和最佳实践。这份指南旨在提升代码的可读性、可维护性和团队协作效率。Ruby是一种灵活而富有表达力的编程语言,但也因此可能导致...

    Ruby-StreamioFFMPEG简单但强大的rubyffmpeg包装用于读取元数据和电影转码

    Streamio FFMPEG 是一个基于 Ruby 的库,它为 FFmpeg 提供了一个简洁而强大的接口,使得在 Ruby 开发环境中处理多媒体文件变得容易。FFmpeg 是一个广泛使用的跨平台工具集,用于处理音频和视频文件,包括转换、提取...

    Ruby+on+Rails快速Web应用开发实战.pdf

    - **字符编码问题**:文档中出现了“Latin1StandardCharacterS”,这可能指的是Rails在处理不同字符编码时的配置选项。 总结以上内容,Ruby on Rails快速Web应用开发实战的文档详细介绍了Ruby编程语言和Rails框架的...

Global site tag (gtag.js) - Google Analytics