Wenn ich durch die Scala 2.8 Predef-Klasse schaue, finde ich, dass es eine Methode "lokal" gibt. Soweit ich das beurteilen kann, ist es dasselbe wie Predef.identity, abgesehen von der Annotation "@inline". Wofür ist es da und warum ist es wichtig genug, um in Predef zu sein (und somit überall in Scala nutzbar zu sein)?Was macht Predef.locally, und wie unterscheidet es sich von Predef.identity
33
A
Antwort
39
Es wird hier diskutiert: http://www.scala-lang.org/node/3594
Die Idee, die Programmierer Fehler zu verwechseln einen ‚Schlenker‘ lokalen Block mit der Vorlage eines Objekt/Klasse/Merkmale zu vermeiden ist.
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
Wenn der Programmierer will wirklich, dass Block allein stehen, verwendet werden locally
könnte:
object test {
object a
{
val x = 1
}
object b
locally {
val x = 1
}
}
Dieser Thread ist auch, dass der erste Code eine deprecation Warnung erzeugen würde, vorgeschlagen. Dies wurde noch nicht hinzugefügt.
Verwandte Themen
- 1. Was ist NaNi und wie unterscheidet es sich von NaN?
- 2. Was macht jQuery .focus (1)? Wie unterscheidet es sich von .focus()?
- 3. Was ist ein Glom ?. Wie unterscheidet es sich von mapPartitions?
- 4. Was ist KThreadd Prozess und Kinder und wie unterscheidet es sich von Init und Kinder
- 5. Was die Verwendung von Website Push ID und wie unterscheidet es sich von den normalen APNS?
- 6. Was ist Boxen und was macht es?
- 7. struct und :: - was macht es
- 8. Was ist Knockout.js und wie unterscheidet es sich von jQuery ist
- 9. unterscheidet sich von Foo.class.barMethod() und Foo.barMethod()
- 10. Was .sdf-Dateien. Wie unterscheidet es sich von .mdf-Dateien. Funktioniert es mit linq zu Sql?
- 11. Wie unterscheidet sich Hashtable
- 12. Warum unterscheidet sich {} + [] von ({} + [])?
- 13. Wert der Schwimmer unterscheidet sich von dem, was gescannt wurde
- 14. Was ist die Größe von (1), und unterscheidet es sich von 1?
- 15. Was ist Thread.CurrentPrincipal und was macht es?
- 16. GCC: Wie unterscheidet sich März von Mtune?
- 17. Wie unterscheidet sich MegaStore von BigTable?
- 18. Wie unterscheidet sich Gitlab von Github?
- 19. Was ist ein XML-Infoset und auf welche Weise unterscheidet es sich von einem XML-Dokument?
- 20. Was genau unterstützt ColorTranslator.FromHtml() und warum unterscheidet es sich von CSS-Farbinterpretationsregeln?
- 21. Unerwartete Verhalten von "as" -Operator, es unterscheidet sich von Normalform
- 22. Wie genau unterscheidet sich JVM von Dalvik und/oder ART?
- 23. Unterscheidet sich identifierForVendor zwischen Entwicklungs- und Distributionsversionen?
- 24. Wie unterscheidet sich ArrayListMultimap von LinkedListMultimap?
- 25. Wie unterscheidet sich das Armspeichermodell von ia64?
- 26. Wie unterscheidet sich Gurke von JUnit?
- 27. Wie unterscheidet sich << von +?
- 28. Wie unterscheidet sich mpi_file_write von mpi_file_write_all?
- 29. Was ist ein Betriebssystemkernel? Wie unterscheidet es sich von einem Betriebssystem?
- 30. HttpWebRequest.UserAgent: Was macht es
Siehe: http://www.scala-lang.org/node/3594 – retronym
Wow, ich war eigentlich ein Teil dieses Threads und vergaß alles darüber. Wenn Sie dies als Antwort und nicht als Kommentar verwenden, akzeptiere ich es und schließe die Frage –
Hmm. Ich wäre immer noch interessiert, was der Unterschied zwischen "Identität" und "lokal" ist. – mkneissl