Ruby 板


LINE

最近沒什麼文章﹍ 前幾篇提到的 ludy, 裡面有一些 unit test, 可以單獨執行一個 unit test, 也弄了一次跑全部的 unit test, 看 programming ruby 的說法是,只要全部 require 進來就好了。 是這樣沒錯,確實可以跑,問題是真的是跑很慢﹍﹍。 我不太懂為什麼,但因為跑這麼慢,我決定換另外一種方式, 也就是直接批次單一執行就好。 缺點是,這樣就會輸出一大堆訊息,沒辦法看到 overview. 優點是,就算哪一個 unit test 有問題,也不會因此停下來, 這是真正的 unit test XD 不過我還是想看 overview, 所以我去抓輸出訊息, 把 0 tests, 0 assertions, 0 faliures, 0 errors 這一條抓下來,然後統計這四個數字。 m = output.match /(\d+) tests, (\d+) assertions, (\d+) failures, (\d+) errors/ 然後加到紀錄上: result = result.zip(m[1..4].map(&:to_i)).map{|data| data.inject(&:+)} 我有點好奇的是,這一行不知道會不會被嫌太難懂? 最近由於之前寫 Haskell 的關係,不知不覺都會用比較 functional 的 style 不熟悉的人也許要看一陣子才能懂,但是我相信寫慣 fp 的人, 應該看了就知道是什麼意思吧?簡單解釋行為如下: result = [0]*4 # 一開始初始化為 [0,0,0,0] 分別表示四個數字 抓到的結果會是:%w{1 2 3 4}, 也就是 ['1', '2', '3', '4'] 的字串陣列 這就是取 m[1..4] 的結果。m[0] 是整個字串。 要相加,當然要把字串變成數字,所以呼叫 map &:to_i, 結果就會是:[1,2,3,4] 接下來要怎麼依序加進去?當然,each_with_index 可以解決這件事, 不過這樣整個程序就必須拉長了,很討厭。比較簡單的方法就是 zip, 將兩個 array 以對齊的方式合併,如: [0,0,0,0].zip [1,2,3,4] 就會是 [0,0,0,0] [1,2,3,4] => [[0,1], [0,2], [0,3], [0,4]] 接下來讓他們各自相加合併,呼叫 inject &:+ (fp 中一般是叫 fold), 就會變成: [1, 2, 3, 4] 了。 可惜 ruby 大概是不能做這種事: &:inject(&:+) 可以的話就可以省略那個 data 了 XD 做為下一次 ludy 的擴充計畫好了﹍ -- 「行け!Loki!」(rocky ロッキー) -Gurumin ぐるみん 王子? XD --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.28.18 ※ 編輯: godfat 來自: 220.135.28.18 (08/18 21:43)
1F:推 poga:看不懂一推qq 08/18 21:53
2F:→ poga:勉強懂5成 Orz 08/18 21:53







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP