因此,在我的编程经验中,我遇到了静态类型化语言的两种类型注释:我将它们称为“前”和“后”。C-样式语言使用的格式
int i = 5
而大多数非c族语言都使用这种格式。
var c:int = 5
前者的例子是C,C++,Java;后者的例子是Scala,Haxe,Go。
在某些人看来,这似乎是肤浅的,但我的问题是:每种风格的优点是什么?为什么要用一个而另一个呢?为什么C从一开始就采用这种风格?
考虑整数除法
a = bq + r
其中a,b,q,r分别为:被除数,除数,商和余数。特别是当b=0时,对于给定的a,不存在满足方程的唯一q,因此在这种情况下商q应该是未定义的。
然而,在这种情况下,确实存在唯一的r,即r= a。在商和余数总是一起定义的前提下,每当q未定义时,就会得出r不定义,但在编程中,我们经常希望使用余数运算%而不考虑除法/。我实际上遇到了一个我想要if b == 0 then a else a % b end的情况。
在任何编程语言中,是否存在与%相同的运算符,但在除数为0时返回被除数而不是零除错误?
大多数(或所有)编程语言为% 0返回零除错误有什么原因吗