Rascal return 操作系统中的方法可以吗?
Can Rascal return the operating system in method?
在 java 中,我将使用:System.getProperty("os.name") 将 Java 转换为 return 操作系统。
在 Rascal 中有类似的东西吗?
我的目标是编写一种方法,将文本文件写入独立于 OS 的文件夹。
像;
public void writeTextFile(){
if OS = "macOS" write text to "/Users/Shared/text.txt"
if OS = "Windows" write text to "c:\text.txt"
}
如果您只使用像 home:///path/to/file
这样的主页 URL,则 writeFile 函数会处理其余部分。当前工作目录还有 cwd://
,临时文件夹也有 tmp:///
。
一个更直接的答案,但它不会导致更好的代码。您可以使用 util::SystemAPI
:
中的 API
rascal>import util::SystemAPI;
ok
rascal>getSystemProperty("os.name")
str: "Mac OS X"
但是,另一个答案更好,因为 Rascal 的 loc
数据类型应该提供在所有操作系统上工作相同的文件系统抽象。
在 java 中,我将使用:System.getProperty("os.name") 将 Java 转换为 return 操作系统。 在 Rascal 中有类似的东西吗? 我的目标是编写一种方法,将文本文件写入独立于 OS 的文件夹。 像;
public void writeTextFile(){
if OS = "macOS" write text to "/Users/Shared/text.txt"
if OS = "Windows" write text to "c:\text.txt"
}
如果您只使用像 home:///path/to/file
这样的主页 URL,则 writeFile 函数会处理其余部分。当前工作目录还有 cwd://
,临时文件夹也有 tmp:///
。
一个更直接的答案,但它不会导致更好的代码。您可以使用 util::SystemAPI
:
rascal>import util::SystemAPI;
ok
rascal>getSystemProperty("os.name")
str: "Mac OS X"
但是,另一个答案更好,因为 Rascal 的 loc
数据类型应该提供在所有操作系统上工作相同的文件系统抽象。