2012-03-20 16 views
8

Nei miei post recenti sull'utilizzo o l'omissione di una parola chiave "nuova" in Scala ("new" keyword in Scala) mi è stato detto che l'omissione deriva dal fatto che alcune classi hanno oggetti associati definiti con metodo apply su di essi. La mia domanda è: siamo in grado di dire o esiste una regola generale per distinguere quali classi/oggetti hanno un oggetto compagno e metodo di applicazione?Scala: oggetti companion e parola chiave "nuova"

Grazie in anticipo e mi dispiace è una domanda stupida, ma provenendo da uno sfondo Java è un po 'di confusione.

+1

È possibile visualizzare gli scaladoc. O se usi un IDE, il completamento del codice dovrebbe mostrarlo. – drexin

+0

Sto usando eclissi, come dovrebbe dirmi se sto usando un compagno o no? – Bober02

+0

La tua domanda non era se non dovresti usare un compagno, ma come distinguere quali classi hanno un compagno con apply definito e l'IDE ti mostra una C per la classe, o una O per l'oggetto nella lista di completamento del codice. – drexin

risposta

11

Nel Scala API documentation, viene visualizzata una piccola icona enter image description here nell'elenco a sinistra. Se fai clic su questo, vai alla documentazione dell'oggetto companion della classe o tratto menzionato.

La maggior parte delle classi di raccolta e molte altre classi nella libreria standard hanno oggetti associati con i metodi apply.

Per le classi dei casi, il compilatore Scala crea automaticamente un oggetto associato con un metodo apply (nonché altri metodi).

4

Nel scala API documentation, è possibile accedere all'oggetto compagno cliccando sull'icona Object icon come explained by Jesper, ma si può anche passare da una classe e il suo oggetto associato facendo clic sul simbolo di classe/oggetto sulla parte superiore del pannello principale :

enter image description here

Problemi correlati