假設有個購物車應用程式只允許使用者一次購買十個商品:
CART_TOO_BIG_LIMIT = 10
if shoppong_cart_.num_items() >=CART_TOO_BIG_LIMIT:
ERROR("too many items in cart.")
這段程式有典型的邊界錯誤bug,只要將 >= 改為 > 就能夠修正:
if shopping _cart.num_items() > CART_TOO_BIG_LIMIT:
(或是將CART_TOO_BIG_LIMIT重新定應為11),問題根源出於CART_TOO_BIG_LIMIT名稱的誤解,將名稱改為:MAX_ITEMS_IN_CART,看起來簡單又清楚:
MAX_ITEMS_IN_CART = 10
if shopping_cart.num_items() > MAX_ITEMS_IN_CART:
ERROR("too many items in cart.")
print interger_range(start=2,stop=4)
# 會[2,3]或[2,3,4](或其他及結果)?
start是個合理名稱,stop有多種不同解讀。
這類「閉區間」(包含兩側端點),first/last是不錯的命名方式,除此之外,min/max有可以用於閉區間。
例如要列出十月16日所有的事件
PrintEventsInRange("OCT 16 12:00am", "OCT 17 12:00am")
要比
PrintEventsInRange("OCT 16 12:00am", "OCT 16 11:59:59.999pm")
來的簡單的多。
一般慣例用begin/end表示這類包含起始點不含終點的半開放區間。