希望我能让这个不主观
unsigned
事情是这样的:有时,在固定类型的语言中,我通过使用诸如unsigned int
orunsigned double
等类型将方法和函数的输入限制为正数。
然而,大多数图书馆似乎并不这么认为。以 C# 为例string.Length
。它是一个整数,即使它永远不会是负数。C/C++ 也是如此:sqrt
输入是 anint
或 a double
。我知道这是有原因的……例如,您的参数可能是从文件中读取的,并且(不知道为什么)您可能更喜欢将值直接发送到函数并稍后检查错误(或使用 try-catch 块)。
所以,我假设库比我自己的代码设计得更好。那么反对使用无符号数表示正数的原因是什么?是因为当我们转换回有符号类型时溢出?