【发布时间】:2013-09-10 09:24:17
【问题描述】:
我想获取一个方法的路径,例如“p2-SnakesAndLadders/snakes/DieTest/reached”,并通过在前面加上“|java+method://”并将该字符串用作地点。相反,我想获取位置的字符串值。 Location 或 String 的文档中似乎没有任何提示。
【问题讨论】:
标签: rascal
我想获取一个方法的路径,例如“p2-SnakesAndLadders/snakes/DieTest/reached”,并通过在前面加上“|java+method://”并将该字符串用作地点。相反,我想获取位置的字符串值。 Location 或 String 的文档中似乎没有任何提示。
【问题讨论】:
标签: rascal
首先你可以通过将字符串添加到位置的末尾来做到这一点,就像这样(我认为你需要三个正斜杠,至少在我的情况下,如果我只使用两个,我会得到一个格式错误的 URI 异常):
rascal>l = |java+method:///| + "p2-SnakesAndLadders/snakes/DieTest/reached";
loc: |java+method:///p2-SnakesAndLadders/snakes/DieTest/reached|
第二个你可以使用路径字段
rascal>l.path;
str: "/p2-SnakesAndLadders/snakes/DieTest/reached"
如果你想去掉第一个斜线,你可以这样做
rascal>l.path[1..];
str: "p2-SnakesAndLadders/snakes/DieTest/reached"
【讨论】:
谢谢。我还发现插值效果很好,所以如果我有一个 uri,那么
uri == |<uri.scheme>://<uri.authority><uri.path>|
【讨论】: