ruby技巧大全完整版.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

Ruby

技巧

Ruby技巧001常值

所谓常值(literal),就是用来将数值、字符串等基本的对象直接写在脚本中的表示法。

数值

???数值时在程序中可被处理的一种最基本的数据形态。

???数值在处理中,与整数及小数有着很大的差异。另外,如果使用标准内建的函数库,也可以处理矩阵、复数等整数、浮点数以外的其他数据形态。

???数值常数包括整数与浮点数。

???整数

???1

???-1

???1000000000000000

???整数包括固定长整数(Fixnum)与大数(Bignum)。Fixnum可表示系统平台上自然操作的数值范围(对32位机器是-230~230-1),而Bignum则表示比此范围更大的整数。因为这两种整数会视需求自动变换,所以一般在编写Ruby的脚本时,不需要特别去区分。

???在整数中,可以依据个人喜好在每位数中间加入“_”。在描述位数较多的数时,可以更容易阅读。

???1_000_000_000

???另外,整数不仅可以表示十进制数,也可以表示二进制数、八进制数、十六进制数。

???sample001-01.rb

???#以“0b”开头的为二进制数

???bin_num=0???pbin_num?#=109

???#以“0”开头的为八进制数

???oct_num=0751

???poct_num?#=469

???#以“0x”开头的为十六进制数

???hex_num=0xAF83

???phex_num?#=44931

???浮点数

???浮点数是指使用浮动小数点表示的数。浮动小数点分为“假数部分”与“指数部分”,以“假数X10指数部分”来表示。如此一来,由大的数值到小的数值,都可以用限制的位数来处理。

???在Ruby中,指数部分与假数部分是以“假数e指数”的形式来表示。例如:1.4*100000会以“1.4e5”来表示,2.0/1000会以“2.0e-3”来表示。

???1.2

???1.4e5??#1.4X(10的5次方)

???2.0e-3?#2.0X(10的-3次方)

符号

???符号用来表示方法名等,对应内部所使用值的对象。符号是以“:”起始的英文与数字所构成(开头的字符不可使用数字)。

???:sym

???:s001

???在Ruby1.8中,新增了符号的写法。

???:symbol123???#符号“symbol123”

???%s[symbol123]?#符号“symbol123”

???在过去包含空格符的符号是不可以使用的,但通过新增的写法,前面那些包含空格符等的符号,也可以使用了。

字符串

???字符串处理是Ruby拿手的领域之一。为此,在字符串的表示上,导入了如下各种的写法。

???RubyOnRails学习网

???%q[中国北京]

???%Q(ROR学习网)

???ROR

???红宝石比珍珠好

???HELLO

???“”与“”这两种将字符串包住的写法与其他程序语言是相同的。“”与“”的差异有以下两点。

???“”可使用特殊字符

???“”可在其中展开“#{表达式}”的具体描述语句

???所谓特殊字符是指如\n、\t这样附有“\”的字符。\n表示换行,而\t表示跳格。另外,还有像\x5a这样的形式是可以用字符的十六进制数来表示的写法。

???表达式展开是将Ruby的表达式嵌入字符串中的一种写法。若在“”的字符串中有“#{表达式}”这样的字符串,则会执行其中的表达式,并将其结果在字符串中取代“#{表达式}”。

???最后,我们使用“”的三行写法,称为HereDocument。HereDocument将在“”的下一行起,一直到某一行开头为前面第一行中“”后所接字符串的行为止的所有文字作为一个字符串。

???在HereDocument中也可以展开表达式。

正则表达式

???正则表达式是一种用来表示字符串样式(pattern)的写法,使用在与字符串的比对上。

???正则表达式的写法有两种:以“//”包住的写法与以“%r”开头的写法。

???在使用以“//”包住的写法时,样式中不可以直接写入“\”。我们必须透过“\”来跳脱(Escape)。

???/R.*y/?#可相配“R”之后出现任意字符0次以上之后接“y”的字符串

???/Ruby\/Python/?#可相配“Ruby/Python”字符串

???例如:与“/rubybase/”及“/rubycase/”相配的正则表达式可以用下面的写法表示。使用“%r”的时候,在“%r”的下一字符表示常值的起始于结束。

您可能关注的文档

文档评论(0)

MAX知识点 + 关注
实名认证
文档贡献者

资料收集达人

版权声明书
用户编号:8053033065000020

1亿VIP精品文档

相关文档