论(认真)看文档的重要性

Date:  2016/7/29   Sort:  编程开发 1375 Views / 0 Comments 
    最近继续搞Qt前端开发,由于阅读能力不过关,结果活生生被文档坑了两天(文档:怪我喽!)。
    事情是这样的,项目中要对一个时间字符串进行解析并转换成QTime类型。(错误的)示例代码如下:
    QString time = "2'33\"";
    QString format = "m''ss\"";
    return QTime::fromString(time, format);
    Qt官方的文档中说,fromString()可以根据format指定的时间类型来转换time,并列出了一堆时间字段的表示符(如:h = 小时数,mm = 含前导零的分钟数),并称“a-z和A-Z的其他字母均予以保留,其他字符则不被解析”。然后因为眼斜,又在同一页中的另外一个函数——toString()的说明中看到“要表示单引号本身,需要用两个单引号”。所以就有了以上代码。
    事实呢,各位大概也猜到了,无论我怎么修改格式字符串,就是无法得到有效的QTime。一开始以为是引号转义的锅,所以单独开了一个工程,单独测试上述代码,结果发现哪怕不涉及转义(不用双引号),时间照样解析不出来。于是以为这下Qt被自己打脸了;转念一想:这么低级的错误难道没人报Bug?于是由把文档看了一遍(期间还查了Java和PHP的日期解析函数),结果才发现fromString()的说明里面根本就没有提到单引号!S**t!
    所以捏,最后只能妥协地改用以下代码:
    QString time = "2'33\"";
    QString format = "m:ss\"";
    return QTime::fromString(time.replace('\'',':'), format);
    这个故事告诉我一个道理:文档再完善再通俗易懂,如果读文档的人是个蠢货,那代码一样会很糟糕。

    P.S.:前一段时间刚参加一个英语能力评估,本以为阅读一项妥妥无敌,结果却大跌眼镜。看来以后得时刻记着一点:自己的理解方式与众不同。

转载本站文章请注明,转载自:WTZ的小博[ http://wiblog.net/]
知识共享许可协议 本作品采用知识共享署名 4.0 国际许可协议进行许可。

更多