据我了解,ClosedInterval(lo, hi)
代表所有字符串s
这样
lo <= s <= hi
and HalfOpenInterval(lo, hi)
代表所有字符串s
这样
lo <= s < hi
where <=
and <
是由字典顺序弦乐的,
即逐一比较字符,直到发现差异。
例如"QED" < "T" < "WTF"
因为Q < T < W
, but "F" < "QED"
因为F < Q
。所以
HalfOpenInterval("QED" , "WTF").contains("T") == true
HalfOpenInterval("QED" , "WTF").contains("F") == false
And "QED" < "QSF"
因为Q == Q
and E < S
, but "QAF" < "QED"
因为Q == Q
and A < E
。所以
HalfOpenInterval("QED" , "WTF").contains("QSF") == true
HalfOpenInterval("QED" , "WTF").contains("QAF") == false
这应该可以解释你所有的测试结果。
最后,
let clampedString0 = aThroughHHalfOpen.clamp ( tThroughXHalfOpen )
is an empty间隔因为"A"..<"H"
and "T"..<"X"
没有共同点。
空区间可以表示为HalfOpenInterval(dummy, dummy)
for any的价值dummy
.