tengo el siguiente método:Scala: definir los parámetros por defecto en una función (val) vs utilizando un método (DEF)
scala> def method_with_default(x: String = "default") = {x + "!"}
method_with_default: (x: String)java.lang.String
scala> method_with_default()
res5: java.lang.String = default!
scala> method_with_default("value")
res6: java.lang.String = value!
que estoy tratando de lograr lo mismo con una val, pero me da una error de sintaxis, así:
(sin valor predeterminado, éste compila bien)
scala> val function_with_default = (x: String) => {x + "!"}
function_with_default: String => java.lang.String = <function1>
(pero no pude conseguir éste para compilar ...)
scala> val function_with_default = (x: String = "default") => {x + "!"}
<console>:1: error: ')' expected but '=' found.
val function_with_default = (x: String = "default") => {x + "!"}
^
alguna idea?
Función1 con Function0 es muy inteligente, pero yo diría que es un poco apestoso Solo mi opinión aquí. Ninguna discusión fue intencionada. :) – pedrofurla
BTW puede usar los azúcares para funciones: 'new (String => String) con (() => String) {override def apply = apply (" default "); anular def aplicar (x: String) = x + "!" } 'funciona. – pedrofurla
Estoy de acuerdo que es un poco apestoso, pero no veo una solución que no lo sea. –