Closed wdscxsj closed 7 years ago
@wdscxsj 👍 新的命令行选项很符合 Go 的风格,让我一下就想到了 time 的格式化风格 。之前一直不理解为什么跟其他语言不一样,原来这个叫【基于范例】的XXX,学习了 👍 。
P.S. 可以考虑把上面的【对应关系】添加到 README.md 中。
悲催的程序员
我的错 😂
@mozillazg 过谦了,有点帮助就好。
另外,目前所有不匹配的拼音风格都默认采用Tone
,似乎有点太宽容。个人感觉,与silently fall back到默认值相比,要求用户拼写正确看上去苛刻,实际上更为合理。Go flag库也是采用“不服就死”的方式。
@wdscxsj 好建议 👍 ,更严格的限制确实更合理。
@wdscxsj 关于严格限制拼音风格选项的值,最近比较忙没时间修改,欢迎提交 PR.
实用工具pinyin目前直接采用源代码定义的拼音风格名作为命令行选项,似乎存在以下问题:
strconv.ToLower()
一下再比较,用户体验也会好一些。Normal
改称Toneless
似乎更精确;哪些风格带有复数s,什么是2什么是3,为什么没有1,用户回忆起来恐怕也得“顿一下”。如果仅作为第三方库给悲催的程序员调用,以上问题(除了代码维护)似乎也无所谓。但既然提供了命令行工具,个人倾向于对用户更温柔些。
在此建议改用基于范例的风格选项,好处是:容易拼写,也容易记忆;用户注意力集中到问题域,不容易写错;隐藏了实现方式,利于代码维护;容易基于现有代码修改,不易改错。
建议采用的范例字是“赵”,好处是:好记(百家姓首位);拼音短;涵盖了现有的全部风格;挺欢乐……
对应如下:
附注标*处的说明:zhào和ào不容易输入,命令行选项就要采取折衷,这是用户唯一需要“硬记”的地方。其中Tone是默认选项,一般不需要指定;必须指定时,也只要记得“4在a前面”(for all?),这也是a4o、ao4的自然外推。