Tengo un método en Scala que devuelve una tupla, digamos que el método se llama 'prueba'. Entonces lo que quiero hacer¿Cómo se empareja el patrón con una variable en mayúscula?
val (X,Y) = test()
Sin embargo, el patrón de coincidencia sólo funciona en Scala, cuando los nombres de las variables son minúsculas, es decir:
val(_X,_Y) = test(); val X = _X; val Y = _Y
... funciona bien, pero es feo, y no breve. Como X e Y son matrices, realmente no quiero tener que usar variables en minúsculas. (En scipy y matlab, no tendría esa restricción, por ejemplo).
Creo que hay alguna manera de asegurarse de que las variables en minúsculas se comporten como mayúsculas, es decir, haciendo `x`. Tal vez hay alguna forma de hacer que las variables en mayúsculas se comporten como minúsculas? Entonces, esa es mi pregunta: ¿hay alguna forma de emparejar patrones directamente en variables mayúsculas en Scala?
Creo que hay algo extraño en un lenguaje que le permite usar nombres de mayúsculas variables durante las primeras 20 horas de descubrimiento del lenguaje, y de repente, por un uso pequeño pero útil, decide de repente, no, variables mayúsculas , ¡No permitido! –
@HughPerkins Estoy de acuerdo con eso. Y se vuelve aún más complicado: Scala le permite hacer coincidir patrones en constantes, que se definen como variables con nombres en mayúsculas.Algo como 'val MyConst =" Texto "; match de someString {caso MyConst => ...; ...} '. Esto causa mucha confusión. La regla más sensata es usar mayúsculas para las constantes de nivel superior solamente y usar minúsculas en todos los demás lugares. –
Ok, bueno, nadie ha proporcionado una respuesta positiva a la pregunta, por lo que marcaré su respuesta como la respuesta por el momento, sobre todo porque proporcionó algunas ideas constructivas sobre cómo solucionar la falta de poder especificar el tipo (constante vs variable) de una variable en Scala. –