但这和写作是一样的:
f = 1.0.__truediv__ # or 1.0.__div__ for python 2
在阅读 JDK 源代码时,我发现作者通常会检查参数是否为 null,然后手动抛出新的 NullPointerException ()。
因为 float
文字可以用三种形式书写:
normal_float = 1.0
short_float = 1. # == 1.0
prefixed_float = .1 # == 0.1
他们为什么要这么做?我认为没有必要这样做,因为它在调用任何方法时都会抛出新的 NullPointerException ()。(例如,下面是 HashMap 的一些源代码:)
public V computeIfPresent(K key,
BiFunction<? super K, ? super V, ? extends V> remappingFunction) {
if (remappingFunction == null)
throw new NullPointerException();
Node<K,V> e; V oldValue;
int hash = hash(key);
if ((e = getNode(hash, key)) != null &&
(oldValue = e.value) != null) {
V v = remappingFunction.apply(key, oldValue);
if (v != null) {
e.value = v;
afterNodeAccess(e);
return v;
}
else
removeNode(hash, key, null, false, true);
}
return null;
}