Domanda

stavo leggendo lo SQueryL documentazione sull'aggiornamento e ho visto:

update(songs)(s =>
  where(s.title === "Watermelon Man")
  set(s.title := "The Watermelon Man",
      s.year  := s.year.~ + 1)
)

Ho avuto un momento difficile trovare il metodo ~ dal codice sorgente SQueryL e la documentazione legata, ovviamente, non mi dice cosa fa neanche. Importa a qualcuno di spiegare?

È stato utile?

Soluzione

Ricordo di aver letto che l'operatore tilde non troppo tempo fa sul Schema Definition Pagina . Si tratta di disambiguazione tra una primitiva e un tipo personalizzato, anche se (come sto appena cominciando a imparare Scala) suona ancora un po 'vaga per me;). Per citare un piccolo pezzo

...

importante: in modalità PrimitiveTypes ci può essere ambiguità tra operatori numerici

Quando si utilizza org.squeryl.PrimitiveTypeMode, il compilatore tratterà un'espressione come il uno nel prossimo esempio come booleano. La funzione. ~ È necessario per dire al compilatore che la lato sinistro è un nodo di TypedExpressionNode [Int] che causano l'intera espressione sia un LogicalBoolean che è ciò che la clausola in cui prende:

...

La speranza che aiuta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top