Pregunta

Estoy aprendiendo Rubí en mi tiempo libre, y tengo una pregunta acerca de las construcciones del lenguaje para las constantes. Rubí no tiene un equivalente de la palabra clave const C ++ para mantener las variables que se modifique? Aquí hay un código de ejemplo:

first_line   = f.gets().chomp()
column_count = first_line.split( %r{\s+} ).size()
print column_count, "\n"

Me gustaría declarar COLUMN_COUNT ser constante, porque yo lo uso más adelante en mi programa y yo realmente no quiero modificar por error. Rubí no proporcionar una construcción del lenguaje para hacer esto, o me entiendan y darse cuenta de que mis variables son siempre mutable?

Respuesta a los comentarios:

'La causa más probable de sobreescritura 'accidental' de variables es asegurar que, el, largos bloques de código.' Estoy de acuerdo con el espíritu de su punto, pero de acuerdo con la letra. Su punto de evitar largos bloques de código y estado innecesaria es una buena idea, pero para las constantes también puede ser útil para describir el diseño de código dentro de la aplicación. Una gran parte del valor de la const en mi código viene de anotar cuáles son las variables que deben cambiar y que yo no debería, por lo que no estoy tentado a cambiarlos si regreso a mi código siguiente año. Este es el mismo sentimiento que sugiere que el código que utiliza comentarios cortos debido a los buenos nombres de variables y claro sangrado es mejor que el código escrito torpemente explicada por los comentarios detallados.

Otra opción parece ser el método #freeze de Ruby, que me gusta el aspecto de también. Gracias por las respuestas a todos.

¿Fue útil?

Solución

Las variables que comienzan con una letra mayúscula son constantes en Ruby. Por lo que podría cambiar el código para esto:

first_line   = f.gets().chomp()
Column_count = first_line.split( %r{\s+} ).size()
print Column_count, "\n"

Ahora que obtendrá una advertencia si intenta modificar Column_count.

Otros consejos

Rubí las variables , en general, son, además, variable.

Más allá de la respuesta de Jeremy, mientras que todo exacto, no te llevan a un estilo de Ruby que es muy "corriente principal" o idiomático sueno y yo no lo recomendaría para su aprobación. Ruby no funciona como C ++ y en general no es muy apropiado para las cosas que C ++ es la mejor opción para. Los sistemas operativos, procesadores de texto, ese tipo de cosas.

La causa más probable de sobreescritura "accidental" de variables es asegurar que, el, largos bloques de código. Después de todo, si se cambia el valor de una variable en un método de cinco líneas, que va a ser bastante evidente! Si está habitualmente escribir bloques de código ya que, por ejemplo, 10 líneas, a continuación, los trozos son probablemente haciendo demasiadas cosas y me aconsejan que haga esfuerzos para romper hacia arriba (aumento la cohesión ). Localizar las variables tanto como sea posible para minimizar la posibilidad de efectos secundarios inesperados (reducir acoplamiento ).

Por convención, las constantes de rubí se escriben generalmente en todas las tapas como COLUMN_COUNT. Pero, como se señaló, todas las variables que comienzan con una letra mayúscula son constantes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top