[SWIFT] Schreiben Sie einfach mehrere Schleifen mit schnellen Verschlüssen

Als ich versuchte, mehrere Schleifen einfach in C zu schreiben, konnte ich eine for-Anweisung mit einem Makro wie folgt definieren. Dies tritt häufig in solchen Quellen auf, beispielsweise bei der 3D-Verarbeitung, bei der mehrere Schleifen häufig verwendet werden. Ich denke jedoch, dass es häufig vorkommt, dass Sie nicht mit C90 kompilieren können oder dass Sie die Verarbeitung mit Makros in aktuellen und jungen Sprachen wie der jüngsten Version von Swift nicht beschreiben können.

nested_loop.c


#include <stdio.h>
#include <stdlib.h>

#define N 10
#define START_LOOP for(int i=0; i < N; i++){\
				   for(int j=0; j < N; j++){\
				   for(int k=0; k < N; k++){
#define END_LOOP }}}

int main(){
	START_LOOP
		printf("%d %d %d\n",i,j,k);
	END_LOOP
}

Wenn Sie dies in Swift's Closure schreiben, können Sie es so definieren.

nested_loop.swift


let N = 10;

func nested_loop(closure:(Int,Int,Int)->()){
  for i in 0..<N {
    for j in 0..<N{
      for k in 0..<N{
        closure(i,j,k)
      }
    }
  }
}

nested_loop({(i,j,k) in
  print(i,j,k)
})

nested_loop({
  print($0,$1,$2)
})

Möglicherweise können Sie auch die Anweisung Parallel.For in C # ausführen. (Ich habe es nie benutzt) Ich bin mir bei funktionalen Sprachen nicht sicher, aber es kann etwas geben, das man sehen kann, wenn man die konventionelle Verarbeitung durch so etwas ersetzt.

Recommended Posts

Schreiben Sie einfach mehrere Schleifen mit schnellen Verschlüssen
[Swift / Für Anfänger] Schreiben Sie intelligent mit Typinferenz
Schreiben wir die Eingabe / Ausgabe von Java-Dateien mit NIO
Laden Sie einfach mehrere Bilder mit Rails Rails + Carrierwave + Cloudinary hoch
Schreiben wir Javadoc