aviatorscript: mecanismo de processamento de expressão em jvm

   Na semana passada, acidentalmente pensei em uma pergunta. Na linguagem python, você pode inserir python diretamente na linha de comando para entrar no modo interativo e, em seguida, escrever expressões. Assim como o script shell no Linux, inserimos o comando e você pode visualizá-lo diretamente. Na linguagem JavaScript, o node também fornece um ambiente de execução interativo repl.

    O aviatorscript apresentado hoje é um mecanismo de processamento de expressões baseado na JVM. Com a ajuda da máquina virtual Java, scripts relevantes podem ser escritos. Expressões podem ser escritas nesses scripts. Quando executado, é como a avaliação de expressões.

    Endereço aviatorscript: https://github.com/killme2008/aviatorscript

    Você pode baixá-lo diretamente para o seu computador local e executá-lo, conforme mostrado abaixo:

 

    Após o download do aviatorscript, um erro pode ser relatado ao executar na linha de comando cmd. Precisamos mudar para a linha de comando msys. Eu uso o ambiente git bash em minha máquina. git gui precisa ser instalado localmente. Ele vem com git bash. Se não quiser instalar o git bash, você pode instalar o msys ou o cygwin diretamente.

    Usado em projetos Java:

<dependency>
    <groupId>com.googlecode.aviator</groupId>
    <artifactId>aviator</artifactId>
    <version>5.3.3</version>
</dependency>

    Código de amostra:

package com.xxx.expr;

import com.googlecode.aviator.AviatorEvaluator;
import com.googlecode.aviator.Expression;

import java.io.IOException;

import java.util.HashMap;
import java.util.Map;

public class AviatorExample {
    public static void main(String[] args) {
        String expr = "x + y";
        Map<String, Object> params = new HashMap<>();
        params.put("x" , 10L);
        params.put("y", 20L);
        Long result = (Long) AviatorEvaluator.compile(expr).execute(params);
        System.out.println(result);

        String avPath = "bin/hello.av";
        try {
            Expression expression = AviatorEvaluator.getInstance().compileScript(avPath);
            expression.execute();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

    olá.por

let a = 1;
let b = 2;
p(a+b);
let c = tuple(1, 2, 3, 4, 5);
let sum = reduce(c, +, 0);
p("sum = " + sum);

let date = new java.util.Date();
p(date);

    resultado da operação:

 

    A sintaxe do aviatorscript é semelhante ao python e um pouco semelhante ao javascript. 

Acho que você gosta

Origin blog.csdn.net/feinifi/article/details/131217327
Recomendado
Clasificación