WHATWG Infra Standard规范澄清:列表索引是否连续、索引获取规则疑问
问题解答
关于第一个问题(索引连续性的理解)
你的理解完全正确。WHATWG Infra标准定义的List属于有序线性序列结构,天然要求索引连续:
规范里的索引获取规则已经明确了所有合法索引是固定的连续整数序列,不存在非连续的合法索引,你实现时不需要额外支持非连续索引的逻辑。
关于第二个问题(区间定义与exclusive含义)
不会出现索引多一个的问题,这里的exclusive是数学区间表述里的「不包含右端点」的意思:
To get the indices of a list, return the range from 0 to the list’s size, exclusive.
对应翻译过来就是返回**左闭右开区间[0, 列表size)**的所有整数。举个实际例子:如果列表的size是3,返回的索引就是0、1、2三个数,刚好覆盖所有实际存在的元素索引,完全匹配实际存储的元素数量。
额外实现提示
PHP原生数组本质是有序哈希映射,你实现这个List结构时,底层可以直接用PHP数组存储数据,但对外暴露的操作接口需要严格限制仅支持连续0基索引的操作,禁止自定义非连续/非数字键,即可完全符合规范要求。
内容的提问来源于stack exchange,提问作者Joe Devine
相关产品推荐
相关产品推荐

