Zugriff auf das nächste Element in der Liste zum Vergleichen in Scala

8

Ich bin neu bei Scala und ich frage mich, wie Sie das nächste Element der Liste aufrufen können, weil ich versuche, das aktuelle Element mit dem benachbarten zu vergleichen. Gegeben sei x als aktuelles Element, ich habe versucht, ähnlich wie Java, x + 1, aber das hat nicht funktioniert. Irgendwelche Hilfe?

%Vor%     
Dan 20.04.2011, 07:14
quelle

8 Antworten

26

Wie wäre es mit dem Gleiten?

%Vor%     
Landei 20.04.2011 09:36
quelle
7

Die kanonische Vorgehensweise in einer for Schleife wäre:

%Vor%

(Übrigens ist es wahrscheinlich besser, die if-Anweisung in diesem Beispiel nach außen zu stellen und nicht innerhalb des Verständnisses.)

Wenn Sie Indizes anstelle von Werten haben, dereferenzieren Sie sie einfach mit dem gleichen Muster. Persönlich finde ich dieses Muster nicht sehr klar oder nützlich. Es ist langsam, hat seltsame Ecken mit Listen, die nicht voll sind, und es ist schwer zu verstehen, was vor sich geht. Stattdessen definiere ich

%Vor%

was dann so verwendet werden kann:

%Vor%

Die Varianten "forallpair", "expencepair" und "findpair" sind besonders nützlich.

    
Rex Kerr 20.04.2011 16:37
quelle
3

Dies wird besser dadurch behandelt, dass man über die -Liste rekurriert, anstatt die -Elemente zu durchlaufen, da die Elemente nichts über die Liste wissen.

Zum Beispiel:

%Vor%     
Daniel C. Sobral 20.04.2011 23:07
quelle
2
___ qstntxt ___

Ich bin neu bei Scala und ich frage mich, wie Sie das nächste Element der Liste aufrufen können, weil ich versuche, das aktuelle Element mit dem benachbarten zu vergleichen. Gegeben sei x als aktuelles Element, ich habe versucht, ähnlich wie Java, x + 1, aber das hat nicht funktioniert. Irgendwelche Hilfe?

%Vor%     
___ answer5733673 ___

Die kanonische Vorgehensweise in einer match Schleife wäre:

%Vor%

(Übrigens ist es wahrscheinlich besser, die if-Anweisung in diesem Beispiel nach außen zu stellen und nicht innerhalb des Verständnisses.)

Wenn Sie Indizes anstelle von Werten haben, dereferenzieren Sie sie einfach mit dem gleichen Muster. Persönlich finde ich dieses Muster nicht sehr klar oder nützlich. Es ist langsam, hat seltsame Ecken mit Listen, die nicht voll sind, und es ist schwer zu verstehen, was vor sich geht. Stattdessen definiere ich

%Vor%

was dann so verwendet werden kann:

%Vor%

Die Varianten "forallpair", "expencepair" und "findpair" sind besonders nützlich.

    
___ answer5737660 ___

Dies wird besser dadurch behandelt, dass man über die -Liste rekurriert, anstatt die -Elemente zu durchlaufen, da die Elemente nichts über die Liste wissen.

Zum Beispiel:

%Vor%     
___ qstnhdr ___ Zugriff auf das nächste Element in der Liste zum Vergleichen in Scala ___ antwort5727220 ___

Als Option können Sie for und Rekursion anstelle von %code% verwenden:

%Vor%     
___ answer18324813 ___

list.tail.head

gibt das nächste Element an, wenn Sie alle Elemente von der Vorderseite der Liste durchlaufen möchten. Dies liegt daran, dass der Kopf das vorderste Element ist und der Rest der Rest der Liste ist.

    
___ answer38546667 ___

Wie in Scala 2.11.7 gilt:

%Vor%

1) Zip den Schwanz

%Vor%

2) Schieben Sie das Fenster

%Vor%     
___ tag123list ___ Liste kann sich beziehen auf: eine verkettete Liste (eine geordnete Menge von Knoten, die jeweils auf ihren Nachfolger verweisen) oder eine Form eines dynamischen Arrays. Um nicht für HTML-Listen verwendet zu werden, verwenden Sie stattdessen [html-lists]. ___ tag123scala ___ Scala ist eine universelle Programmiersprache, die hauptsächlich auf die Java Virtual Machine abzielt. Entwickelt, um gängige Programmiermuster in einer prägnanten, eleganten und typsicheren Weise auszudrücken, vereint es sowohl imperative als auch funktionale Programmierstile. Seine Hauptmerkmale sind: fortgeschrittenes statisches System mit Typinferenz; Funktionstypen; Muster-Matching; implizite Parameter und Konvertierungen; Überlastung des Bedieners; volle Interoperabilität mit Java; Nebenläufigkeit ___ answer5726900 ___
%Vor%     
___ answer5729820 ___
%Vor%     
___ answer5728267 ___

Wie wäre es mit dem Gleiten?

%Vor%     
___
tonek 20.04.2011 07:57
quelle
2
%Vor%     
Eastsun 20.04.2011 11:56
quelle
0
%Vor%     
user unknown 20.04.2011 07:25
quelle
0

list.tail.head

gibt das nächste Element an, wenn Sie alle Elemente von der Vorderseite der Liste durchlaufen möchten. Dies liegt daran, dass der Kopf das vorderste Element ist und der Rest der Rest der Liste ist.

    
Chris Murphy 19.08.2013 23:46
quelle
0

Wie in Scala 2.11.7 gilt:

%Vor%

1) Zip den Schwanz

%Vor%

2) Schieben Sie das Fenster

%Vor%     
Kyr 23.07.2016 21:41
quelle

Tags und Links