-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Description
我是写了两个for循环的表达式
- 表达式1:for循环内部什么也不做
- 表达式2:循环体内部做了一些操作
本来希望最终都输出1,但是结果是表达式1是null,表达式2是1
public static void main(String[] args) {
Express4Runner runner = new Express4Runner(
InitOptions.builder()
.interpolationMode(InterpolationMode.DISABLE)
.build());
// 空的for循环
Map<String, Object> context = new ConcurrentHashMap<>();
context.put("a", 1L);
String express1 = "for(int i=0;i<5;i++) {\n"
+ " \n"
+ "} \n"
+ "1;";
QLResult r = runner.execute(express1, context, QLOptions.builder().cache(true).avoidNullPointer(true).build());
System.out.println("Express1 result: " + r.getResult());
// for循环不为空
Map<String, Object> context2 = new ConcurrentHashMap<>();
context2.put("a", 1L);
String express2 = "for(int i=0;i<5;i++) {\n"
+ " a = a + i; \n"
+ "} \n"
+ "1;";
r = runner.execute(express2, context2, QLOptions.builder().cache(true).avoidNullPointer(true).build());
System.out.println("Express2 result: " + r.getResult());
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
