5

直接来自这个API

解决

路径解析(路径其他)

针对该路径解析给定路径。

如果 other 参数是绝对路径,则此方法通常 返回 other。如果 other 是空路径,则此方法通常会返回此路径。否则,此方法将此路径视为目录并针对此路径解析给定路径。在最简单的情况下,给定路径没有根组件,在这种情况下,此方法将给定路径连接到此路径并返回以给定路径结尾的结果路径。如果给定路径具有 根组件,则解析高度依赖于实现 ,因此未指定。

(强调我的)

这里有一点矛盾,首先他们说:

  1. 如果 other 参数是绝对路径,则此方法通常返回 other。

    然后他们说:

  2. 如果给定路径具有根组件,则解析高度依赖于实现,因此未指定。

绝对路径不是必须包含根组件才能成为这样吗?提前致谢。

4

1 回答 1

3

对您的问题的简短回答是否定的,绝对路径不需要有根组件,但是,取决于提供者,它可能。

如果我们查看UnixPath 的源代码,我们会看到,确实,如果它是绝对路径,那么它会返回一个根组件,并且只有当它是绝对路径时才会返回一个根组件。

但是,不要求以这种方式实施。至少从理论上讲,getRoot() 可能会返回某些内容,而 isAbsolute() 可能会返回 false。在这种情况下,结果是不确定的。或者,以真值图形式表示:

Result of resolve() when:
                     getRoot()==null  getRoot()!=null
isAbsolute()==true   defined          defined
isAbsolute()==false  defined          undefined
于 2013-10-29T23:19:17.660 回答