28 条回复  ·  3015 次点击
shintendo 小成 前天 16:12
这是否也是一种匈牙利命名法
kzfile 初学 前天 16:13
可以让代码更接近语言,我就很喜欢用很长的命名方式,尽可能描述信息
imdong 初学 前天 16:13
有必要,你也不想 isSetName 与 SetName 分不清谁是谁吧? isChild 与 child 歧义就大了。 虽然大多时候可以通过 if(!name()) 强转判断,但有明确的类型岂不更好?
Outshine 小成 前天 16:14
加 is 本身没有问题,有问题的是在本身语义就是布尔的名字前面加了一个 is ,比如 enable 、deleted 等
forty 小成 前天 16:25
1.这是语义化、可读性的要求,有助于看名知意,否则读代码时,你需要先查看类型再思考含义? 2.也不都是 is, 还有 can, has, -able, 等等,共同点是接近英语用词。 如:isAnimal (这里不用 is 就不能良好表达含义) isRunning, hasEmail, available, callable 3.也有不用这些词缀也很合理的场景。如:expired, running, exists 总之,懂点英语,就不会困惑了。
finab 初学 前天 16:26
@Outshine isEnabled 是一个很规范的写法吧,像苹果就大量使用这种变量名
vfs 小成 前天 16:34
搜了以下代码库,有一个例子: BOOL IsClient, 不用 "Is" 的话,Client 变量歧义会不会有点儿大啊。 别人看到第一印象肯定不会认为它是一个 BOOL
uds9u32br 初学 前天 16:47
isEnabled 这种形容词前面还加 is ,是否略微繁琐了一些 写在代码里面语义个人感觉 Enabled 更舒服 if Enabled { xxx }
lululau 小成 前天 16:48
楼主想说的:1. 强类型 -> 静态类型; 2. 形容词前面加 is 形容词前面加 is ,确实是没必要,有的时候甚至会造成问题,比如 enabled / running ,没必要写成 isEnabled / isRunning
Kenmin 小成 前天 16:52
前端一些约定俗成的`boolean`变量不会加,比如`loading` `show`等。 其他的也都会加`is` `has`之类的前后缀,即使使用的是 TypeScript 注明了类型
返回顶部