Guardando attraverso la classe Predef di Scala 2.8, trovo che c'è un metodo "localmente". Per quanto posso dire, è lo stesso di Predef.identity, tranne che per l'annotazione "@inline". A cosa serve e perché è abbastanza importante essere in Predef (e quindi utilizzabile ovunque in Scala)?Cosa fa Predef.locally e come è diverso da Predef.identity
33
A
risposta
39
Si è discusso qui: http://www.scala-lang.org/node/3594
L'idea era quella di evitare l'errore del programmatore di confondere un 'penzoloni' di blocco locale con il modello di un oggetto/classe/trait.
object test {
object a
{
val x = 1
}
object b
{ // oops, extra newline disassociates this block with the object b
val x = 1
}
}
test.a.x
//test.b.x // doesn't compile
Se il programmatore vuole davvero quel blocco di stare da solo, potrebbe essere utilizzato locally
:
object test {
object a
{
val x = 1
}
object b
locally {
val x = 1
}
}
Questo thread ha anche suggerito che il primo codice produrrebbe un avvertimento deprecazione. Questo non è stato ancora aggiunto.
Problemi correlati
- 1. Cosa fa Predef.identity in scala?
- 2. Che cosa è esattamente CDATA e cosa fa?
- 3. Qual è Thread.CurrentPrincipal, e che cosa fa?
- 4. Cosa fa $ _SERVER da solo?
- 5. cos'è il percorso //, in che cosa è diverso da/
- 6. Cosa fa jQuery .focus (1)? In cosa differisce da .focus()?
- 7. Cosa fa aspnet_regiis.exe
- 8. Cos'è Boxen e cosa fa?
- 9. Cosa fa l'operatore * e l'operatore?
- 10. Cosa fa addScalar?
- 11. Cosa fa useTransform e useTransition options da iScroll do?
- 12. Cosa fa document.domain = document.domain?
- 13. Clojure: come è defn diverso da fn?
- 14. Che cosa fa esattamente `-rdynamic` e quando è esattamente necessario?
- 15. Cosa fa "_help" come target?
- 16. In C# è un per (;;) sicuro e cosa fa veramente?
- 17. Cosa fa asm ("pause") e perché usarlo
- 18. Cosa fa?
- 19. Cosa fa [:]?
- 20. Quanto è diverso Qt4 da Qt3?
- 21. Cosa fa effettivamente session_register_shutdown?
- 22. Cosa fa effettivamente Process.Dispose()?
- 23. Cosa fa addActionListener?
- 24. Cosa fa overrideredirect?
- 25. Cosa fa un i2c_new_dummy?
- 26. UIImagePickerController + Ritaglio: cosa permette AllowEditing e cosa non lo fa?
- 27. Cosa fa "adb remount"? Quando è utile?
- 28. Cosa fa @NSManaged?
- 29. Cosa fa -D_DEFAULT_SOURCE?
- 30. Cosa fa il gelsomino e aspetta?
Vedere: http://www.scala-lang.org/node/3594 – retronym
Wow, in realtà ero parte di quel thread e ne ho dimenticato tutto. Se si effettua questa risposta anziché un commento, lo accetto e chiudo la domanda –
Hmm. Mi interesserebbe ancora qual è la differenza tra 'identity' e' localmente '. – mkneissl