Chaîne d'interpolation est disponible en Scala de départ Scala 2.10
C'est l'exemple de base
val name = "World" //> name : String = World
val message = s"Hello $name" //> message : String = Hello World
Je me demandais si il existe un moyen de faire de l'interpolation dynamique, par exemple, la suite (ne compile pas, juste pour des fins d'illustration)
val name = "World" //> name : String = World
val template = "Hello $name" //> template : String = Hello $name
//just for illustration:
val message = s(template) //> doesn't compile (not found: value s)
Est-il un moyen de "dynamique" évaluer une Chaîne comme ça? (ou est-il foncièrement mauvais / pas possible)
Et qu'est -
s
exactement?ce n'est pas une méthode def(apparemment, c'est une méthode deStringContext
), et non pas un objet (s'il l'était, il aurait jeté une autre erreur de compilation que pas trouvé , je pense)
Edit:
Basé sur la accepté de répondre, voici la solution pour l'exemple ci-dessus à l'aide de Rex suggestion
val name = "World" //> name: String = World
val template = name=>s"Hello $name" //> template: Seq[Any]=>String = <function1>
val message = template(name) //> message: String = Hello World