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

2022-01-04 01:02:10 +08:00
 rogwan

对比一下 Java:

int x = 8

Python, JS 等加个前缀:

int_x = 8

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

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

1819 次点击
所在节点    编程
10 条回复
ipwx
2022-01-04 01:10:36 +08:00
因为大部分情况下项目已经有自己的约定了啊。。。不需要加前缀。

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

s 肯定是字符串。

arr 肯定是数组。

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

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

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

lstTupleIntStrBoolOrTupleIntStrOfArr

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

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

像你这样直接把提升程序可读性的努力打回解放前,顾此失彼了属于是
agagega
2022-01-04 01:47:02 +08:00
《匈牙利命名法》
crab
2022-01-04 03:01:19 +08:00
使用的时候不是多了前缀字节。
cmdOptionKana
2022-01-04 08:44:36 +08:00
楼主平时用什么编辑器,看起来好像没感受到现代 IDE/编辑器的强大?
Kilerd
2022-01-04 09:16:48 +08:00
type hints 不只是简单的告诉你类型是什么,而是告诉 IDE 类型是什么,这样 IDE 才能做到代码补全。
murmur
2022-01-04 10:16:34 +08:00
c 语言不就特喜欢这个风格
pengdirect
2022-01-04 11:46:43 +08:00
好像也没啥毛病。主要是这几个字母,懒得打
chenmobuys
2022-01-04 11:54:46 +08:00
这个下划线,感觉好丑

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/825978

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX