国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

21個你應該知道的Ruby編程技巧

2019-10-26 19:22:57
字體:
來源:轉載
供稿:網友

1. 快速獲取正則表達式的匹配值

通常我們使用正則表達式,都是先match,然后再取結果,但是這樣有時候會拋異常,看下面例子:

代碼如下:
email = "Fred Bloggs "

email.match(//)[1] # => "fred@bloggs.com"

email[//, 1] # => "fred@bloggs.com"

email.match(/(x)/)[1] # => NoMethodError [:(]

email[/(x)/, 1] # => nil

email[/([bcd]).*?([fgh])/, 2] # => "g"

上面例子中還有一種更簡單的方法,就是使用 String#[]方法,可以直接匹配正則表達式,更簡潔,雖然看起來使用了魔鬼數字。
當然你可以省略掉那個魔鬼數字,如果僅匹配一次的話:

代碼如下:
x = 'this is a test'

x[/[aeiou].+?[aeiou]/] # => 'is i'

這個例子中,我們匹配規則“先匹配一個元音,然后一個輔音,再接著一個元音”。

2. Array#join!的快捷實現

我們知道Array的*操作,是將數組里面的元素成倍的增加:

代碼如下:
[1, 2, 3] * 3 == [1, 2, 3, 1, 2, 3, 1, 2, 3]

但是當乘因子不是數字是字符串會出現什么效果?

代碼如下:
%w{this is a test} * ", " # => "this, is, a, test"

h = { :name => "Fred", :age => 77 }

h.map { |i| i * "=" } * "n" # => "age=77nname=Fred"

對了,這就是join!的效果。因此可以用這種方式來快捷地實現join!操作。

3. 快速格式化十進制數字

格式化浮點數字的精度顯示通常使用sprintf這個函數,可是有一種更快捷的方式,使用字符串。

代碼如下:
money = 9.5

"%.2f" % money # => "9.50"

4. 快速解析字符串

在技巧3中我們看到了數字的格式化,這里就說一下字符串格式的快捷方式。

代碼如下:
"[%s]" % "same old drag" # => "[same old drag]"

這里的意思是將”same old drag”顯示到[]中。
我們再看一下具體的格式化方法:

代碼如下:
x = %w{p hello p}

"%s" % x # => "

hello

5. 遞歸刪除文件和目錄

FileUtils提供了這種方法:

代碼如下:
require 'fileutils'

FileUtils.rm_r 'somedir'

還有一個方法是FileUtils.rm_rf,與linux上的 rm -rf 對應。

6. 快速窮舉可枚舉對象

使用*操作可以快速的窮舉出可枚舉對象中的所有元素,像Array,Hash這種對象。

代碼如下:
a = %w{a b}

b = %w{c d}

[a + b]                              # => [["a", "b", "c", "d"]]

[*a + b]                             # => ["a", "b", "c", "d"]

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北流市| 玛多县| 兴海县| 新宁县| 西畴县| 武鸣县| 塔城市| 万载县| 禄劝| 康定县| 手机| 闽清县| 顺昌县| 丽水市| 万全县| 兴隆县| 洱源县| 福州市| 三河市| 道孚县| 公主岭市| 昌都县| 翁牛特旗| 太保市| 方正县| 萍乡市| 铜鼓县| 纳雍县| 苏尼特左旗| 乐业县| 黔东| 抚松县| 青州市| 固镇县| 裕民县| 仙游县| 开阳县| 舒城县| 广河县| 保定市| 灵璧县|