Non restituisce la lista vuota, restituisce Unit
(una tupla zero), che è l'equivalente di Scala di void
in Java. Se restituisse la lista vuota, vedresti List()
stampata sulla console anziché su ()
(tupla nulla).
Il problema è che stai usando la sintassi sbagliata per il tuo metodo get
. È necessario utilizzare un =
per indicare che get
restituisce un valore:
def get() = {
this.queue.head
}
O questo è probabilmente ancora meglio:
def get = this.queue.head
In Scala di solito lasciare fuori le parentesi (lista parametri) per le funzioni nullaria che non hanno effetti collaterali, ma questo richiede di lasciare le parentesi fuori quando si chiama queue.get
pure.
Si potrebbe dare un'occhiata veloce allo Scala Style Guide, in particolare lo section on methods.
Mentre stai imparando, potresti trovare utile scrivere esplicitamente più tipi di quelli necessari. In questo caso, se avessi scritto 'def get(): Int {this.queue.head}' il compilatore ti avrebbe detto che c'era un problema con il metodo 'get'. –