见过有不少同学如是乎给变量起名字:
比如 isRunning
, isLogin
, isBlabla
元芳怎么看?
1
sudoz 2017-02-06 10:41:25 +08:00
布尔值的变量这么取名不觉得有什么问题
|
2
qiayue 2017-02-06 10:43:43 +08:00
一看就知道是布尔值,而且知道 true 表示什么意思
|
3
laoyur 2017-02-06 10:48:15 +08:00 2
你觉得有什么问题,不妨先说出来
另外,是 blah |
4
coderluan 2017-02-06 10:49:44 +08:00
没毛病,用这个不光是同学水平的。
|
5
letitbesqzr 2017-02-06 10:51:26 +08:00
没毛病 一直这样
|
6
learnshare 2017-02-06 10:53:59 +08:00
Login 应该是个动作, isLogin 表示状态就不太合适
|
7
basefas 2017-02-06 10:56:33 +08:00
语义明确,通俗易懂,大家统一标准就好,不要什么都上纲上线
|
8
chairuosen 2017-02-06 10:58:12 +08:00
你想怎么起名
|
9
TakWolf 2017-02-06 11:00:07 +08:00
猜测楼主的意思估计是,应该起名为 running , 这样 getter 跟 setter 就是: isRunning() setRunning()
|
10
ytmsdy 2017-02-06 11:00:25 +08:00
当年有个同事,写代码的时候。变量都是用 x 来表示的,然后出现了诡异的画面
x = 1 xx = 'hello world' xxx = 2.56 xxxx = True 所以江湖人称’ x 爷‘ |
11
dorentus 2017-02-06 11:08:38 +08:00
isLoggedIn
|
12
viator42 2017-02-06 11:13:41 +08:00
bool 值自动生成的 get 方法就是 isXxx(),某种意义上说是钦定的命名法
|
13
loading 2017-02-06 11:14:32 +08:00 via Android 5
变量名这些,可以参考:
https://unbug.github.io/codelf/ |
14
haogefeifei 2017-02-06 11:24:59 +08:00
少年。。。这是钦定的命名法。。。。
|
15
otakustay 2017-02-06 11:28:58 +08:00 1
isLogin => isSignedIn
isRunning 也不是很好,不知道 running 的是什么,阶有非常明确的上下文,所以 isXxxProcessRunning 更好 |
17
liuhaotian 2017-02-06 11:34:11 +08:00 1
|
18
sethverlo 2017-02-06 11:41:28 +08:00
ruby 大法好。。可以用 running? login?
|
19
akring 2017-02-06 11:46:00 +08:00
老铁没毛病,双击 666
苹果在 Swift3 里都把原来的 hidden 改成 isHidden 的命名方式了 |
20
techmoe 2017-02-06 11:50:58 +08:00 via Android
登录用 hasLogin 比较贴切吧
|
21
librae OP |
23
librae OP isRunning 还蛮顺溜的, is 动词就昏厥
|
24
expkzb 2017-02-06 12:14:59 +08:00
不仅是 isXXX 吧,还有比如 shouldXXX, hasXXX
|
25
librae OP @sudoz
@qiayue 确实可以理解为一种“标记”用来标识 **boolean** 实在需要的时候我一般是用 bRunning , js 里用驼峰, c 里不喜欢,所以就 b_running 或者就直接 running 了。 @coderluan 其实我也是工作中才注意到的,以前当同学的时候编译通过就万事大吉了 @ytmsdy 天下之大,哈哈哈... @loading 感谢分享 @letitbesqzr @learnshare @basefas @chairuosen 可能是因为以前在 linux kernel 里面转悠多了,再加上自己写习惯了,所以就有了条件反射的生理反应。 举个栗子,譬如: http://lxr.free-electrons.com/source/include/linux/sched.h#L1465 ``` 1456 /* Track pages that require TLB flushes */ 1457 struct tlbflush_unmap_batch { 1458 /* 1459 * Each bit set is a CPU that potentially has a TLB entry for one of 1460 * the PFNs being flushed. See set_tlb_ubc_flush_pending(). 1461 */ 1462 struct cpumask cpumask; 1463 1464 /* True if any bit in cpumask is set */ 1465 bool flush_required; 1466 1467 /* 1468 * If true then the PTE was dirty when unmapped. The entry must be 1469 * flushed before IO is initiated or a stale TLB entry potentially 1470 * allows an update without redirtying the page. 1471 */ 1472 bool writable; 1473 }; ``` 这里有两个 **bool** `bool flush_required;` `bool writable;` 为什么前面不带 be 动词呢? 因为 `flush_required` 和 `writable` 本身就已经能表达是非两种状态了,带 be 的话感觉多余。 总而言之,习惯性使然,主要想了解下除了自己以外,别人是否也关注过这些其实没卵用的点。 |
26
librae OP 回复里不能 markdown ?算鸟不改了
|
27
SourceMan 2017-02-06 13:09:29 +08:00
觉得不爽?小组里面你把这个规范强制要求统一起来就得啦!提交错罚 10 块活动经费
|
29
Pastsong 2017-02-06 13:31:23 +08:00
完全不爽 bRunning 这种写法...根本不可读...来, 战个痛
|
30
lifesimple 2017-02-06 14:00:02 +08:00
还好吧 bool 类型的话 或者后面加个 state isLoginState
|
32
maplerecall 2017-02-06 14:28:17 +08:00
之前总觉得 isLogin 哪里怪怪的,现在一般用 isLoggedIn ……
|
33
rockyou12 2017-02-06 16:52:06 +08:00
isLogin 好像不合语法,但是可以放弃思考啊,取名字很伤神的
|