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.

¿Cómo usar una cadena como función en Dart?

Estoy atrapado en una situación en la que necesito una función de doble dólar como en PHP. como:

var citis = [];

Quiero usar:

citis = ServiceList.mycity();

en lugar de:

if(mycity == 'Delhi') { citis = ServiceList.Delhi();  } else if(mycity == 'Mumbai') { citis = ServiceList.Mumbai();  }

Estoy seguro de que es posible, pero ¿cómo? ¿Alguien puede ayudar? Gracias de antemano.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para lograr el resultado deseado, puedes usar una declaración de caso switch, como esta:

    switch(mycity) {
      case 'Delhi':
        citis = ServiceList.Delhi();
        break;
      case 'Mumbai':
        citis = ServiceList.Mumbai();
        break;
      // agregar casos para todas las demás ciudades
    }
    

    Alternativamente, puedes usar un mapa para asignar los nombres de las ciudades a sus funciones correspondientes, como esto:

    var cityFunctions = {
      'Delhi': ServiceList.Delhi,
      'Mumbai': ServiceList.Mumbai,
      // agregar más asignaciones de ciudad-función aquí
    };
    
    citis = cityFunctions[mycity]();
    

    Aquí, definimos un mapa cityFunctions que asigna nombres de ciudades a sus funciones correspondientes. Luego, podemos buscar la función correspondiente al nombre de la ciudad proporcionada usando el operador [] en el mapa. Finalmente, llamamos a la función usando el operador () para obtener el array deseado de ciudades.

Comments are closed.