gpt4 book ai didi

java - 为什么java库的编码如此不可读?

转载 作者:行者123 更新时间:2023-12-01 21:43:32 26 4
gpt4 key购买 nike

有时,当我检查 java.util 类的功能时,我会看到类似这样的内容:

final Node<K,V> getNode(int hash, Object key) {
Node<K,V>[] tab; Node<K,V> first, e; int n; K k;
if ((tab = table) != null && (n = tab.length) > 0 &&
(first = tab[(n - 1) & hash]) != null) {
if (first.hash == hash && // always check first node
((k = first.key) == key || (key != null && key.equals(k))))
return first;
if ((e = first.next) != null) {
if (first instanceof TreeNode)
return ((TreeNode<K,V>)first).getTreeNode(hash, key);
do {
if (e.hash == hash &&
((k = e.key) == key || (key != null && key.equals(k))))
return e;
} while ((e = e.next) != null);
}
}
return null;
}

或者例如:

if ((next = (current = e).next) == null && (t = table) != null) {
do {} while (index < t.length && (next = t[index++]) == null);
}

他们倾向于在检查变量值的同一行中大量使用分配变量,以及其他使代码难以阅读的内容。

我的意思是,为了阅读和理解这篇文章,我必须读几遍并在脑海中分离出不同的内容。 但是如果编码方式不同,我认为理解起来并不困难。

这是因为性能吗?如果是的话,我在编写代码时也应该这样做吗?这是常见的吗?

最佳答案

我认为这段代码的可读性实际上还不错。一旦你习惯了某些风格技巧(比如当你在检查条件的同一行中提到变量的赋值时),阅读这样的代码就会变得更加自然。

此外,一些 Java 库函数因其实现的算法而难以理解。例如,我怀疑任何人都能够一口气理解高效的排序函数。我想说,最有趣的代码需要你多次阅读才能理解。

至于效率,我怀疑这有什么区别。无论如何,它通常会编译为相同的指令。

关于java - 为什么java库的编码如此不可读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36184038/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com