killme2008 / aviatorscript

A high performance scripting language hosted on the JVM.
http://fnil.net/aviator/
4.45k stars 831 forks source link

变量名里面包含特殊字符,比如 name/_1abc,报错can not div #492

Closed lemonl2 closed 1 year ago

lemonl2 commented 1 year ago

map = { "name/_1abc": "张三" }

AviatorEvaluator.execute("name/_1abc != nil",map)

报错: com.eoi.aviator.exception.ExpressionRuntimeException: Could not div with at com.eoi.aviator.runtime.type.AviatorObject.div(AviatorObject.java:210) at com.eoi.aviator.runtime.type.AviatorJavaType.div(AviatorJavaType.java:130) at Script_1664008141587_56/891161865.execute0(Script_1664008141587_56:1) at com.eoi.aviator.ClassExpression.executeDirectly(ClassExpression.java:67

killme2008 commented 1 year ago

name/_1abc 解析成两个变量做除法了, aviatorscript 从来不支持这样的变量命名。如果你非要这么干,可以用 quote 变量

#`name/_1abc` != nil

这些问题请仔细阅读文档再使用。