es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Evaluar expresiones de cadena en Rust con condicionales.

Estoy tratando de evaluar una cadena en Rust con condicionales utilizando el módulo evalexpr. Esto resulta en el siguiente error:

thread ‘main’ panicked at ‘called Result::unwrap() on an Err value: AppendedToLeafNode’, src\main.rs:6:56

La descripción del error dice https://docs.rs/evalexpr/5.0.5/evalexpr/error/enum.EvalexprError.html#variant.AppendedToLeafNode

Se intentó agregar un hijo a un nodo hoja. Los nodos hoja no pueden tener hijos.

No entiendo por qué está ocurriendo este error. ¿Alguien tiene alguna idea? ¿Es posible evaluar una cadena con condicionales en Rust?

use evalexpr::*;
fn main() {
    let evalstr = "let x = if input == 8 { 3 } else { 4 };";
    let mut context = HashMapContext::new();
    context.set_value("input".into(), 8.into()).unwrap();
    eval_empty_with_context_mut(evalstr, &mut context).unwrap();
    let val = context.get_value("x").unwrap();
    println!("{}", val);
}
Tags:  ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que el módulo evalexpr está tratando de agregar un hijo a un nodo hoja, donde los nodos hoja no pueden tener hijos. Es difícil determinar específicamente qué está causando el problema sin contexto o código adicional.

    Sin embargo, es posible evaluar una cadena con condicionales en Rust usando el módulo evalexpr. El código de ejemplo proporcionado parece estar tratando de evaluar una declaración if-else y asignar el resultado a una variable llamada x.

    Para solucionar el problema, podría ser útil revisar la documentación de evalexpr y asegurarse de que el código esté implementando correctamente la sintaxis y las llamadas de función requeridas. Además, puede ser útil revisar los valores que se utilizan como entrada y asegurarse de que sean del tipo esperado.

Comments are closed.