变量起名: isBlablabla - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
librae
V2EX    编程

变量起名: isBlablabla

  •  
  •   librae 2017-02-06 10:40:18 +08:00 6378 次点击
    这是一个创建于 3241 天前的主题,其中的信息可能已经有所发展或是发生改变。

    见过有不少同学如是乎给变量起名字:

    比如 isRunning, isLogin, isBlabla

    元芳怎么看?

    34 条回复    2017-02-06 23:35:36 +08:00
    sudoz
        1
    sudoz  
       2017-02-06 10:41:25 +08:00
    布尔值的变量这么取名不觉得有什么问题
    qiayue
        2
    qiayue  
    PRO
       2017-02-06 10:43:43 +08:00
    一看就知道是布尔值,而且知道 true 表示什么意思
    laoyur
        3
    laoyur  
       2017-02-06 10:48:15 +08:00   2
    你觉得有什么问题,不妨先说出来
    另外,是 blah
    coderluan
        4
    coderluan  
       2017-02-06 10:49:44 +08:00
    没毛病,用这个不光是同学水平的。
    letitbesqzr
        5
    letitbesqzr  
       2017-02-06 10:51:26 +08:00
    没毛病 一直这样
    learnshare
        6
    learnshare  
       2017-02-06 10:53:59 +08:00
    Login 应该是个动作, isLogin 表示状态就不太合适
    basefas
    &nsp;   7
    basefas  
       2017-02-06 10:56:33 +08:00
    语义明确,通俗易懂,大家统一标准就好,不要什么都上纲上线
    chairuosen
        8
    chairuosen  
       2017-02-06 10:58:12 +08:00
    你想怎么起名
    TakWolf
        9
    TakWolf  
       2017-02-06 11:00:07 +08:00
    猜测楼主的意思估计是,应该起名为 running , 这样 getter 跟 setter 就是: isRunning() setRunning()
    ytmsdy
        10
    ytmsdy  
       2017-02-06 11:00:25 +08:00
    当年有个同事,写代码的时候。变量都是用 x 来表示的,然后出现了诡异的画面
    x = 1
    xx = 'hello world'
    xxx = 2.56
    xxxx = True

    所以江湖人称’ x 爷‘
    dorentus
        11
    dorentus  
       2017-02-06 11:08:38 +08:00
    isLoggedIn
    viator42
        12
    viator42  
       2017-02-06 11:13:41 +08:00
    bool 值自动生成的 get 方法就是 isXxx(),某种意义上说是钦定的命名法
    loading
        13
    loading  
       2017-02-06 11:14:32 +08:00 via Android   5
    变量名这些,可以参考:
    https://unbug.github.io/codelf/
    haogefeifei
        14
    haogefeifei  
       2017-02-06 11:24:59 +08:00
    少年。。。这是钦定的命名法。。。。
    otakustay
        15
    otakustay  
       2017-02-06 11:28:58 +08:00   1
    isLogin => isSignedIn
    isRunning 也不是很好,不知道 running 的是什么,阶有非常明确的上下文,所以 isXxxProcessRunning 更好
    barbery
        16
    barbery  
       2017-02-06 11:31:49 +08:00
    @loading 居然支持中文搜,有点意思,哈哈哈
    sethverlo
        18
    sethverlo  
       2017-02-06 11:41:28 +08:00
    ruby 大法好。。可以用 running? login?
    akring
        19
    akring  
       2017-02-06 11:46:00 +08:00
    老铁没毛病,双击 666

    苹果在 Swift3 里都把原来的 hidden 改成 isHidden 的命名方式了
    techmoe
        20
    techmoe  
       2017-02-06 11:50:58 +08:00 via Android
    登录用 hasLogin 比较贴切吧
    librae
        21
    librae  
    OP
       2017-02-06 12:07:30 +08:00 via iPhone
    @TakWolf 你咋知道,哈哈

    主要是感觉有强迫症,看到读起来不顺口的名字会有生理反应,比如汗毛会立起来

    librae
        22
    librae  
    OP
       2017-02-06 12:09:42 +08:00 via iPhone
    @laoyur 谢指出错误
    librae
        23
    librae  
    OP
       2017-02-06 12:11:50 +08:00 via iPhone
    isRunning 还蛮顺溜的, is 动词就昏厥
    expkzb
        24
    expkzb  
       2017-02-06 12:14:59 +08:00
    不仅是 isXXX 吧,还有比如 shouldXXX, hasXXX
    librae
        25
    librae  
    OP
       2017-02-06 12:59:11 +08:00
    @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 的话感觉多余。

    总而言之,习惯性使然,主要想了解下除了自己以外,别人是否也关注过这些其实没卵用的点。
    librae
        26
    librae  
    OP
       2017-02-06 13:00:11 +08:00
    回复里不能 markdown ?算鸟不改了
    SourceMan
        27
    SourceMan  
       2017-02-06 13:09:29 +08:00
    觉得不爽?小组里面你把这个规范强制要求统一起来就得啦!提交错罚 10 块活动经费
    librae
        28
    librae  
    OP
       2017-02-06 13:20:50 +08:00
    @SourceMan 我是被统一的,正打算揭竿起义
    Pastsong
        29
    Pastsong  
       2017-02-06 13:31:23 +08:00
    完全不爽 bRunning 这种写法...根本不可读...来, 战个痛
    lifesimple
        30
    lifesimple  
       2017-02-06 14:00:02 +08:00
    还好吧 bool 类型的话 或者后面加个 state isLoginState
    grayon
        31
    grayon  
       2017-02-06 14:14:03 +08:00
    @property (nonatomic, assign, getter=isEnabled) BOOL enabled;
    maplerecall
        32
    maplerecall  
       2017-02-06 14:28:17 +08:00
    之前总觉得 isLogin 哪里怪怪的,现在一般用 isLoggedIn ……
    rockyou12
        33
    rockyou12  
       2017-02-06 16:52:06 +08:00
    isLogin 好像不合语法,但是可以放弃思考啊,取名字很伤神的
    mingyun
        34
    mingyun  
       2017-02-06 23:35:36 +08:00
    @loading 这个不错
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5250 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 05:52 PVG 13:52 LAX 21:52 JFK 00:52
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86