小编Pat*_*zer的帖子

如何让Graal SDK包在没有Maven的情况下工作?

我正在开发一个需要执行JavaScript的Java应用程序.Nashorn JS引擎即将被弃用,替换是Graal SDK提供的一组API,它使用GraalVM.基本上执行多种语言的虚拟机.

至少这是我的想法.所以我花了一天时间试图让它运转起来.我下载了使用JDK 8的GraalVM rc6.我使用IntelliJ IDEA,并将GraalVM添加为新的JDK.我发现奇怪的是我应该添加一个虚拟机作为开发工具包,但我知道它基于JDK 8,所以我很好.

而问题与其他问题不同,我无法让新的软件包运行起来.我的IDE告诉我它无法解决它们.

实际上,没有一个org.graalvm软件包可以解析.

所以我下载了JDK 11 build 28,因为据我所知JDK 11自20版开始就附带了GraalVM.

实际上,在这种情况下,可以找到一些软件包,但远远低于预期:例如org.graalvm.polyglot仍然无法解析.

最后,我尝试从Maven添加Graal SDK并解决了包.现在我在运行时遇到异常:

Context ctx = Context.create(“js”);
Run Code Online (Sandbox Code Playgroud)

在类路径上找不到语言和多语言实现.确保truffle-api.jar在类路径上.

我认为前两个案例中的问题实际上并没有获得GraalVM JDK,但它甚至以这种方式抛出了异常.

有经验的人可以解释一下吗?

java java-8 graalvm java-11

5
推荐指数
1
解决办法
998
查看次数

Is the return statement considered to be an expression statement in C?

I heard that if an expression is followed by a semicolon, then it is considered to be an expression statement.

Source: http://farside.ph.utexas.edu/teaching/329/lectures/node11.html

int x = 7;
x = 8;
x++;
x—-;
x = x << 1;
Run Code Online (Sandbox Code Playgroud)

这些都是表达式语句。

但这也是表达方式吗?

return 5;
Run Code Online (Sandbox Code Playgroud)

如果没有,请彻底解释原因。

如果您能说出返回饱和度是否也可以视为其他语言的表达语句,我也将不胜感激。

c expression

4
推荐指数
2
解决办法
94
查看次数

检查std :: any变量是否持有std :: string时出现问题

在c ++中,您可以比较两个type_info对象。

std::any班。它具有一个成员.type(),该成员还将返回一个type_info对象,告诉您其包含的类型。我可以使用typeid(THE_TYPE)并比较两者。

以下代码有效:

std::any x = 6;

if (x.type() == typeid(int)) {
    cout << "x is int";
}
Run Code Online (Sandbox Code Playgroud)

但是以下操作无效:

std::any x = "string literal";

if (x.type() == typeid(std::string)) {
    cout << "x is string";
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?如何检查变量是否为字符串?

c++ string types

1
推荐指数
1
解决办法
69
查看次数

标签 统计

c ×1

c++ ×1

expression ×1

graalvm ×1

java ×1

java-11 ×1

java-8 ×1

string ×1

types ×1