Ich bin mir nicht sicher, wie ich hier vermeiden kann, Code zu duplizieren

8

Ich habe diesen Code, der großartig funktioniert und genau das tut, was ich möchte:

%Vor%

Aber ich mache genau dasselbe zweimal, nur mit einer anderen Bedingung und einem anderen Array. Wie vermeide ich es, die Logik zu duplizieren? Ich habe versucht, es als ein Array von zwei Tupeln zu verpacken:

%Vor%

und ich stelle das in eine for-Schleife:

%Vor%

und das kompiliert, aber es sieht so aus, als wäre das Array kopiert worden, anders gesagt hat das Ändern von "array" keinen Einfluss auf "array1" oder "array2". Ich habe andere Varianten davon mit tuple.0 und Tuple.1-Notation ausprobiert, konnte das aber nicht kompilieren. Also habe ich versucht, NSArrays anstelle von nativen Swift-Arrays zu verwenden ... aber ich konnte nicht herausfinden, wie man das richtig macht, und dachte auf jeden Fall, dass es einen einfacheren Weg geben muss.

Gibt es eine prägnante Möglichkeit, meinen ursprünglichen Code zu wiederholen, um die Logik nicht zu kopieren?

    
user1224598 12.01.2015, 15:19
quelle

2 Antworten

4

Curry es!

%Vor%

(und das gleiche inout stuff, das andyvn22 erwähnt hat, kann auch hier angewendet werden.)

    
Aaron Rasmussen 12.01.2015 19:25
quelle
1
%Vor%

Oder, wenn Sie sich kleinlich fühlen, benennen Sie die Funktion um, machen Sie array und inout -Parameter, entfernen Sie return und nennen Sie es wie folgt:

%Vor%     
andyvn22 12.01.2015 19:00
quelle

Tags und Links