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灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP