1
cmdOptionKana 1 天前 7
主要是因为命名是件很麻烦的事情,加上 is 可以降低与其他命名冲突的可能性,就这个优点已经值得加上了。
|
2
factionstrue 1 天前 via Android 1
一是这个名称的本身含义,二是防止冲突。
|
3
wu67 1 天前
不喜欢 is 你可以 if...一眼就能看出这个变量是啥啥啥呀
|
4
windmoonwind 1 天前
提高代码的可读性和维护性
增强代码的表达力和清晰度 |
5
cnbatch 1 天前 1
看情况,有时候我会写
has_been_xxx hasBeenXXX can_do_xxx canDoXXX 避免歧义、准确表述最重要。该用 is 时就用 is ,该用短语就用短语,没必要畏手畏脚。 |
6
liuidetmks 1 天前
看代码不一定要 ide 吧,看到 is 就知道是 bool ,一目了然
|
7
chendy 1 天前
看个人习惯或者团队要求,统一就行,别有的有有的没
顺便一说对于 java 来说绝对是多余的,因为访问需要走 isXxx ,再加一层就会变成 isIsXxx |
8
donaldturinglee 1 天前
主要是添加语义和防止冲突,不然你在做很大上下文的情况下,容易搞混
|
9
zdw189803631 1 天前
写 js 时候用
|
10
shintendo 1 天前 1
这是否也是一种匈牙利命名法
|
11
kzfile 1 天前
可以让代码更接近语言,我就很喜欢用很长的命名方式,尽可能描述信息
|
12
imdong 1 天前 via iPhone
有必要,你也不想 isSetName 与 SetName 分不清谁是谁吧?
isChild 与 child 歧义就大了。 虽然大多时候可以通过 if(!name()) 强转判断,但有明确的类型岂不更好? |
13
Outshine 1 天前
加 is 本身没有问题,有问题的是在本身语义就是布尔的名字前面加了一个 is ,比如 enable 、deleted 等
|
14
forty 1 天前 2
1.这是语义化、可读性的要求,有助于看名知意,否则读代码时,你需要先查看类型再思考含义?
2.也不都是 is, 还有 can, has, -able, 等等,共同点是接近英语用词。 如:isAnimal (这里不用 is 就不能良好表达含义) isRunning, hasEmail, available, callable 3.也有不用这些词缀也很合理的场景。如:expired, running, exists 总之,懂点英语,就不会困惑了。 |
16
vfs 1 天前
搜了以下代码库,有一个例子: BOOL IsClient, 不用 "Is" 的话,Client 变量歧义会不会有点儿大啊。 别人看到第一印象肯定不会认为它是一个 BOOL
|
17
uds9u32br 1 天前
isEnabled 这种形容词前面还加 is ,是否略微繁琐了一些
写在代码里面语义个人感觉 Enabled 更舒服 if Enabled { xxx } |
18
lululau 1 天前
楼主想说的:1. 强类型 -> 静态类型; 2. 形容词前面加 is
形容词前面加 is ,确实是没必要,有的时候甚至会造成问题,比如 enabled / running ,没必要写成 isEnabled / isRunning |
19
Kenmin 1 天前
前端一些约定俗成的`boolean`变量不会加,比如`loading` `show`等。
其他的也都会加`is` `has`之类的前后缀,即使使用的是 TypeScript 注明了类型 |
20
adoal 1 天前
如果是形容词性的表语,不加 is 也可以清晰表达语义,但名词性的表语不加系动词基本上就是可读性的噩梦了。
|
22
hez2010 1 天前
IsEnabled 可以说是冗余,Enabled 就可以。
但是 IsName 和 Name 就是完全不同的含义了。 不过个人认为只要不是名词应该都不需要加那句多余的 Is 。 |
23
dddd1919 1 天前
见名知意
也可以 can/need/has 等等表判断语气的前缀开头,不加可能产生歧义,加上更明确,那干脆就加 参考上古匈牙利命名法的历史 |
24
Richared 1 天前
我一般都加一个 check 前缀,其实返回值就能区分了,你不能 isname 返回值是个 string 吧,不得事 bool 么。
|
25
RichardPlus 1 天前
多敲俩字母不费事,但能省事儿。找了一个我写的类
[ObservableProperty] private string _Title = string.Empty; [ObservableProperty] private bool _HasChanged; [ObservableProperty] private bool _Completed; [ObservableProperty] private bool _CanMeasure; [ObservableProperty] private bool _CanSave; [ObservableProperty] private bool _CanRefresh; [ObservableProperty] private bool _IsPaged; [ObservableProperty] private bool _HasNextPage; [ObservableProperty] private bool _HasPrevPage; [ObservableProperty] private bool _HasTextFilter; [ObservableProperty] private string _Keyword = string.Empty; |
26
COW 1 天前 via Android
建议代码里的 bool 值基本只用 is ,has ,can 这些前缀就足够了,数据库字段命名也是如此,不要用 check 这种的意义不明的前缀。另外,不要反义词,比如用 isEnabled ,不要用 isDisabled 这种。
|
27
wjfz 1 天前
dog.isAnimal 一看就是 bool
dog.animal 不是很懂想表达什么 类似的还有数据库字段命名: company.creator_id 一看就是 ID company.creator 不知道到底是 ID 还是对象 像你说的 Enabled 这种一般不会加 is ,没必要。 |
28
hiboshi 1 天前
不多于啊,我看变量 我怎么一眼就知道是 bool 类型呢
|
29
k9982874 1 天前 via Android
先看框架语言,如果框架语言都使用 is 那就加 is 跟框架对齐,比如 js 、c#。
再看词性,本身就是 adj 不会引起歧义就可以考虑不加,比如 enabled ,activated 。 |
30
shakukansp 1 天前
咋就冗余了,打英文 is running 和 is enabled 不都是正确用法吗
|
31
lqw3030 1 天前
我记得 java 语言某些语言框架默认 boolean 的 set/get 方法使用 is 开头,导致如果错误的使用 is 开头方法反倒会出问题
|
32
maiyasu 1 天前 4
Ruby 看着你们讨论这个笑而不语, 直接在变量后面加一个问号
|
33
dobelee 1 天前
1. 毫无冗余。
2. 不加 Is 是制造歧义。 |
34
dcsuibian 1 天前
我个人觉得是冗余了,所以我不用。
类似地,我也很少在后面加 data 或 info |
35
tyrantZhao 1 天前
个人感觉,现在加不加 is 都无所谓,反正一眼能看出来。
|
36
liprais 1 天前 via iPhone
“这他妈谁写的狗屁!”
“我擦我写的,三年前” |
37
sir283 1 天前
看个人习惯,有的喜欢直接明了就会加 is ,有的喜欢简洁一点,就会省去 is 。
|
38
webcape233 1 天前
```shell
systemctl is is-active -- Check whether units are active is-enabled -- Check whether unit files are enabled is-failed -- Check whether units are failed isolate -- Start one unit and stop all others is-system-running -- Query overall status of the system ``` 这比 bool_xxx 好多了吧 |
39
ty29022 1 天前
哼!语义上的那都不叫事
上古代码还有很多这种表示类型的 szPath strAddress dwFlags cbSize |
40
netabare 21 小时 6 分钟前
对于 boolean 的属性,也就是类型是`bool`的变量、字段或属性,isXxx 没什么不好的,而且还能统一清晰的让人知道这个字段表达「 XXX 的状态」这个概念。
真正有病的是某些语言里 boolean 的 getter 非要叫 isXxx ,所以禁止 boolean 属性以 is 开头这件事。 |
43
SuancaiFish 10 小时 24 分钟前
@ty29022 😂😂Win32 确实是这样的,lpfnWndProc lpszClassName
|
44
wanguorui123 6 小时 26 分钟前
is has can need
|
45
soulflysimple123 5 小时 37 分钟前
bool 型都命名 xxxxFlag ,某些序列化框架对 is 处理有问题
|