获得徽章 0
CV工程师
CV工程师
CV工程师
CV工程师
CV工程师
赞了这篇沸点
程序里边为什么都使用左闭右开呐?
比如用for循环做个遍历,很多人都习惯用 0<=i<n。
很多语言中处理列表的方法也都是左闭右开,比如substring。
很多年前,dijkstra就研究过这个问题,他有三个论据:
1.半开半闭比较容易获取序列的长度,end-start就可以得出结果,其它的都还得加或者减1。
2.左闭不会超出序列的范围,比如数字区间是1-10,使用左开的话,就得写成0<i,而0不在数字区间内。特别极端情况下可能还会导致溢出。
2.比较容易表示空序列,使用[x,x),实际例子比如substring(0,0)。
总之这样写就是很优雅。[呲牙]

展开
1
下一页