En general, "mejor" en la programación significa cosas diferentes. Por ejemplo, un mejor programa de
- es más fácil de entender, es decir expresa la intención mejor
- es más fácil de mantener. Por ejemplo, menos líneas de código, menos propenso a errores, etc.
- tiene un mejor rendimiento, en términos de tiempo ejecución
- tiene un mejor rendimiento, en términos de uso de memoria
etc
Como estamos hablando de Ruby, el rendimiento suele ser de menor importancia. Si realmente necesita rendimiento, podría considerar otro lenguaje de programación. Entonces, miraría los criterios (1) y (2) primero. El código Ruby que tiene mejor aspecto generalmente representa un programa "mejor". ¿Qué código se ve mejor? ¿Cuál expresa la intención mejor? ¿Cuál sería más fácil de modificar si agrega/elimina la lógica? Depende de tu problema, y es una cuestión de gusto, hasta cierto punto.
Para mí, en su breve ejemplo, la solución hash es mejor. La solución de casos proporciona más flexibilidad, que no necesita en este caso (pero podría necesitar en otros casos).
Parecen cosas extrañas para comparar. El caso es lógico y el hash es una estructura de datos. ¿Tiene un ejemplo específico en el que está tratando de decidir cuál usar? El contexto ayudará a las personas a proporcionar una respuesta útil. – Greg
Como nota general, la declaración de devolución puede ser (y a menudo es) omitida en los métodos ruby. En el caso de su primer ejemplo, podría eliminar tanto las declaraciones de devolución como la asignación a la variable 'result', suponiendo que no está haciendo nada con' result' que no sea devolverlo. –
A veces uso el enfoque de user94154, aunque se siente un poco raro. No creo que sea una pregunta estúpida. –