V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rogwan
V2EX  ›  编程

Python , JS 等动态语言,要规范数据类型,为什么不加个前缀统一呢?

  •  
  •   rogwan · 2022-01-04 01:02:10 +08:00 via Android · 1838 次点击
    这是一个创建于 1080 天前的主题,其中的信息可能已经有所发展或是发生改变。

    对比一下 Java:

    int x = 8

    Python, JS 等加个前缀:

    int_x = 8

    只是把空格换成了下划线,相比 Java 并没有增加长度,也一目了然。特别是 Python 还是强类型语言,主要也是给人眼识别。

    如果项目担心数据类型混乱,直接按这个规范去加个统一的前缀就可以了,也不需要什么 type hint 了。

    10 条回复    2022-01-04 11:54:46 +08:00
    ipwx
        1
    ipwx  
       2022-01-04 01:10:36 +08:00
    因为大部分情况下项目已经有自己的约定了啊。。。不需要加前缀。

    比如 i, j, k 肯定是整数。

    s 肯定是字符串。

    arr 肯定是数组。

    更多时候根据语义,bookList 肯定是 List[Book]

    基本都够了
    ipwx
        2
    ipwx  
       2022-01-04 01:12:02 +08:00
    而且说实话,你这种命名约定扩展到最后就是。。。type hinting

    你说是 arr: List[Union[Tuple[int, str, bool], Tuple[int, str]]] 这种更容易统一和分析呢,还是

    lstTupleIntStrBoolOrTupleIntStrOfArr

    更容易看?
    EPr2hh6LADQWqRVH
        3
    EPr2hh6LADQWqRVH  
       2022-01-04 01:12:44 +08:00
    据说以前微软就是这么干的。

    不过现代语言基本上都支持类型推测,大多数时候类型都是隐含的或者只声明一次,程序写起来更接近英语。

    像你这样直接把提升程序可读性的努力打回解放前,顾此失彼了属于是
    agagega
        4
    agagega  
       2022-01-04 01:47:02 +08:00 via iPhone
    《匈牙利命名法》
    crab
        5
    crab  
       2022-01-04 03:01:19 +08:00
    使用的时候不是多了前缀字节。
    cmdOptionKana
        6
    cmdOptionKana  
       2022-01-04 08:44:36 +08:00
    楼主平时用什么编辑器,看起来好像没感受到现代 IDE/编辑器的强大?
    Kilerd
        7
    Kilerd  
       2022-01-04 09:16:48 +08:00
    type hints 不只是简单的告诉你类型是什么,而是告诉 IDE 类型是什么,这样 IDE 才能做到代码补全。
    murmur
        8
    murmur  
       2022-01-04 10:16:34 +08:00
    c 语言不就特喜欢这个风格
    pengdirect
        9
    pengdirect  
       2022-01-04 11:46:43 +08:00 via iPhone
    好像也没啥毛病。主要是这几个字母,懒得打
    chenmobuys
        10
    chenmobuys  
       2022-01-04 11:54:46 +08:00
    这个下划线,感觉好丑
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5719 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:50 · PVG 10:50 · LAX 18:50 · JFK 21:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.