
见过有不少同学如是乎给变量起名字:
比如 isRunning, isLogin, isBlabla
元芳怎么看?
1 sudoz 2017-02-06 10:41:25 +08:00 布尔值的变量这么取名不觉得有什么问题 |
2 qiayue PRO 一看就知道是布尔值,而且知道 true 表示什么意思 |
3 laoyur 2017-02-06 10:48:15 +08:00 你觉得有什么问题,不妨先说出来 另外,是 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 表示状态就不太合适 |
&nsp; 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 变量名这些,可以参考: 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 isLogin => isSignedIn isRunning 也不是很好,不知道 running 的是什么,阶有非常明确的上下文,所以 isXxxProcessRunning 更好 |
17 liuhaotian 2017-02-06 11:34:11 +08:00 |
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 好像不合语法,但是可以放弃思考啊,取名字很伤神的 |