Al mirar a través de la clase Predef de Scala 2.8, encuentro que hay un método "localmente". Por lo que puedo decir, es lo mismo que Predefidentidad, excepto por tener la anotación "@inline". ¿Para qué sirve y por qué es lo suficientemente importante como para estar en Predef (y, por lo tanto, utilizable en cualquier lugar de Scala)?Qué hace Predef.locally, y cómo es diferente de Predefidentity
33
A
Respuesta
39
Se discute aquí: http://www.scala-lang.org/node/3594
La idea era evitar el error del programador de confundir un bloqueo local 'colgando' con la plantilla de un objeto/clase/rasgo.
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
Si el programador realmente quiere ese bloque a autolimpiante, locally
podrían utilizarse:
object test {
object a
{
val x = 1
}
object b
locally {
val x = 1
}
}
Este hilo también sugirió que el primer código produciría una advertencia desaprobación. Esto aún no ha sido agregado.
Cuestiones relacionadas
- 1. ¿Qué es NaNi, y cómo es diferente de NaN?
- 2. ¿Qué es exactamente CDATA y qué hace?
- 3. ¿Qué es un archivo IOR, qué hace y cómo funciona?
- 4. ¿Qué es diferente entre CoreGraphics y CoreAnimation?
- 5. ¿Qué es el paquete SSIS y qué hace?
- 6. ¿Qué es Google Dremel? ¿Cómo es diferente de Mapreduce?
- 7. ¡Optimización! - ¿Qué es? ¿Cómo se hace?
- 8. ¿Qué es un evento de bucle y cómo es diferente de usar otros modelos?
- 9. ¿Qué es un infoset XML y de qué forma es diferente a un documento XML?
- 10. Qt SDK, Apwrapper: qué es, qué hace.
- 11. Perl, ¿Por qué @INC es diferente?
- 12. En OOP, ¿qué es el reenvío y cómo es diferente de la delegación?
- 13. ¿Por qué es diferente entre AppDomain.CurrentDomain.BaseDirectory Windows Forms y Biblioteca
- 14. ¿Qué significa y hace MYSQLI_NUM?
- 15. elemento inline-block sin texto hace diferente
- 16. ¿Por qué event.bubbles es falso para "focusin" y "focusout"? Hace
- 17. ¿Qué hace concatMap?
- 18. ¿Por qué la salida es diferente?
- 19. ¿Qué hace% {} en Ruby?
- 20. ¿Qué hace document.domain = document.domain?
- 21. ¿Por qué se implementan AsObservable y AsEnumerable de forma diferente?
- 22. ¿Qué es el ciclo de eventos en el ciclo de vida ios y cuál es su uso y qué hace?
- 23. ¿Qué son los eventos enrutados y cómo es diferente de los eventos normales?
- 24. ¿Qué son los métodos dinámicos y cómo es DynamicMethod diferente de MethodBuilder?
- 25. ¿Qué hace "Force" en Uncrustify?
- 26. ¿Qué hace realmente mutex y semáforo?
- 27. ¿Qué hace un arquitecto de software y qué programas utilizan?
- 28. ¿Qué es Ext.Component.initialConfig, qué hace y en qué contexto se usa?
- 29. ¿Por qué sizeof (int) es diferente de sizeof (int *)?
- 30. ¿Qué hace realmente "OperationContext.Current.GetCallbackChannel"?
Ver: http://www.scala-lang.org/node/3594 – retronym
Wow, en realidad yo era parte de ese hilo y me olvidé por completo. Si hace de esto una respuesta en lugar de un comentario, lo aceptaré y cerraré la pregunta –
Hmm. Todavía me interesaría saber cuál es la diferencia entre 'identity' y' local'. – mkneissl