Manchmal kann ich mich buchstäblich nicht erinnern, wie man eine for-Schleife schreibt. Nicht so lustig-lustig, dass ich mich nicht erinnere, wie man "Psychologie" schreibt, sondern wirklich, ich kann es in ein paar Sekunden herausfinden. Wie, gehe zu Google, tippe "for loop PHP", klicke auf ein vielversprechendes Ergebnis, kopiere und füge ein, dann ändere es.
Ich bin hauptsächlich ein Front-End-Entwickler, aber im Grunde bin ich ein professioneller Programmierer. Ist das nicht lächerlich und peinlich? Meh.
Ich bin an einem Tag in vielen verschiedenen Sprachen unterwegs. Eine for-Schleife ist in all diesen Sprachen unterschiedlich. Hier sind sie
for i in 1..5
puts i
end
for (i = 0; i < 5; i++) {
console.log(i);
}
for ($i = 1; $i < 5; $i++) {
echo $i;
}
@for $i from 1 through 5 {
.n-#{$i} { color: red; }
}
- (1..16).each do |i|
%div #{i}
for i in [1...16]
console.log(i)
Sie sind alle unterschiedlich. Keine ist sehr schwer zu verstehen, aber die for-Schleife ist wahrscheinlich die einfachste Konstruktion, die Sie in einer Sprache schreiben müssen, so dass Sie sich vorstellen können, dass es schlimmer wird.
Na und.
All diese Sprachen haben absolut gute Gründe dafür, warum sie das so tun, wie sie es tun. Es ist eine geringfügige Unannehmlichkeit, die richtigen Zeichen an die richtige Stelle zu bringen, um sie dazu zu bringen, die Arbeit zu erledigen.
Was zählt ist
- Ich weiß, was eine for-Schleife ist
- Ich weiß, wann ich eine for-Schleife verwenden sollte
- Ich kenne den Unterschied zwischen einer for-Schleife und anderen Schleifen
- Ich kenne die potenziellen Gefahren einer for-Schleife
Vergessen Sie die Syntax, es zählt der Geist.
Es gibt wahrscheinlich Analogien, die hier zu https://css-tricks.de/blue-box/ und https://css-tricks.de/interviewing-front-end-engineer-san-francisco/ hergestellt werden können
Gut gesagt, Chris.
Ich verbringe viel Zeit mit WordPress und PHP, aber ich muss immer noch zurück zu Google, um bestimmte Konstrukte, Funktionen usw. zu finden, die ich nicht regelmäßig verwende.
Es wird noch schlimmer, wenn ich zwischen Sprachen wechsle. Aus irgendeinem Grund mag PHP es nicht, wenn ich versuche, etwas mit dem Befehl auszugeben
alert $myvar;Geh und finde es heraus...
Ich denke, die beste Lösung ist, etwas wie Sublime Text 3 mit guten Snippets zu verwenden, dann können Sie alle Arten von Dingen in jeder Sprache viel schneller und einfacher tun.
Weißt du, Ralph, wann ST3 veröffentlicht wird?
Es ist bereits veröffentlicht http://www.sublimetext.com/3
Eigentlich ist Version 3 in der Beta.
Es ist öffentlich zugänglich, es ist veröffentlicht.
nur um den Geist zu wahren: eine Schleife in Haxe ist auch anders :)
for (i in 0…5)
{
trace(i);
}
Ich sage immer zu allen, die Programmieren lernen wollen: Das Wichtigste ist der Geist des Codes, nicht die Syntax einer Sprache.
Ich möchte diesen Artikel ins Persische übersetzen
In JavaScript sehen meine for-Schleifen meistens so aus
Ist das nicht ein bisschen übertrieben? Und nicht empfohlen für leistungskritische Aufgaben. Oder längere Iterationen.
Leider wird dies nicht immer unterstützt. Es funktioniert nicht vor IE9, ohne ein Polyfill zu erstellen. Aber kein Deal-Breaker.
Es funktioniert nur mit Arrays, da es sich um eine Prototyp-Funktion von Array handelt.
Ein weiterer Nachteil ist, dass man eine forEach-Schleife nicht wirklich abbrechen kann.
Es ist also definitiv nicht die flexibelste for-Schleife, die man in JavaScript wählen kann.
Haha, gut zu wissen, dass ich nicht der Einzige bin, der im selben Boot sitzt. Ich bin deiner Meinung, Chris. Zu wissen, wann man etwas einsetzt, ist viel wertvoller, als sich alle Syntaxen zu merken und nicht zu wissen, welche man wann einsetzt.
Wir haben so viele Gehirnzellen und sollten sie für Innovation nutzen und nicht zum Speichern von Dingen, die Google am besten handhabt.
Ich fühle mich, als wäre ich "entlarvt" worden
Danke Chris! Ich werde diese Seite bookmarken, für das nächste Mal, wenn ich eine brauche!
Das solltest du auch nicht tun. Benutze stattdessen console.log.
Sehr wahr. Dies ähnelt der Art und Weise, wie ich Leuten empfehle, neue Sprachen zu lernen: Es würde Jahre dauern, jeden Befehl, den man in jeder Syntax verwenden muss, vollständig auswendig zu lernen, aber solange man die Möglichkeiten einer Anwendung und die Bausteine der Programmierung im Allgemeinen kennt, geht es nicht darum, sich Formeln zu merken. Es geht darum zu wissen, was man verwenden soll und wie man es findet.
Deshalb gibt es Dokumentation :)
Ich vergesse immer den "case..when...otherwise"-Fall, besonders in Javascript. Ich benutze ihn in C#, XSLT und Javascript, aber jedes Mal (sogar jetzt) frage ich meinen Freund, Google :-)
Oft lande ich auf der guten alten w3schools.com, wie: Javascript Switch.
– Oh, und ich bin seit 1986 Programmierer (!)
Neiiiiin, das solltest du lesen: http://www.w3fools.com/
Das Lesen solcher Dinge ist immer eine Erleichterung für mich. Ich habe mich kürzlich mit JQuery und reinem JS beschäftigt und fühle mich manchmal, als hätte ich beim Studium etwas falsch gemacht, wenn ich auf ein Problem stoße und mich nicht an die Struktur der Syntax erinnere. Es ist schön zu lesen, dass man auch auf fortgeschritteneren Ebenen manchmal den Faden verliert und externe Ressourcen nutzen muss.
Ha, mir geht es ähnlich mit der Kommentar-Syntax…
Nicht, dass ich vergessen würde, wie die Syntax lautet, aber wenn ich zwischen Dateien wechsle, verwende ich versehentlich manchmal die falsche. Es ist immer einen Moment lang irritierend, wenn ich einfach einen Kommentar hinzufüge und plötzlich alles kaputt geht… :-)
Coffeescript
Es wird noch interessanter, wenn man in verschiedenen Umgebungen arbeitet ;)
Ja, Coffeescript wurde irgendwie fallen gelassen
Deshalb ist es eine gute Idee, eine IDE zu haben, mit der man einen Textblock markieren und durch eine Tastenkombination auskommentieren kann.
Das Vergessen der Syntax einer for-Schleife ist kein Problem. Das Problem ist, nicht zu wissen, **wie**/ **wann** man sie einsetzt.
Das Gleiche passiert mir, wenn ich von JS zu PHP oder anderen Sprachen wechsle. Aber komischerweise erinnere ich mich immer, wie man es in Basic schreibt!
Ich stimme vollkommen zu. Es geht nicht darum, wer sich die richtige Syntax merken kann, sondern wer die richtigen Werkzeuge/Konstrukte für jede Situation kennt.
Ja, es ist wie das Spielen verschiedener Instrumente. Wenn man gute Musik schreiben kann, sind es nur syntaktische Unterschiede. Doppelt wahr innerhalb derselben Instrumentenfamilie (Streicher, Blechbläser, Holzbläser, Schlagwerk usw.). Guter Beitrag.
Neugierig, warum Haml und CoffeeScript 16 Mal schleifen und die anderen nur 5 Mal? ;)
Ich liebe diesen Artikel. Ich vergesse auch zufällige Dinge und ich bin ein guter Entwickler! Ich denke, es ist wie Sie sagten, wenn man so viele Sprachen benutzt, passiert das manchmal. So erfrischend, von jemandem zu hören, den ich für einen kompletten Ninja halte. Ich liebe auch die Schleifenübersicht in all diesen Sprachen – würde ein schönes Poster ergeben!
Der Vollständigkeit halber, hier ist die Schleife in AMPscript
%%[for @i = 1 to 3 do ]%%
[variablen, felder und ausgabe]
%%[next @i]%%
Was ist "Haml"?
HAML ist eine HTML-Template-Parsing-Engine. Mit anderen Worten, es ist ein Framework zur Optimierung des Codierens in HTML…
Bitte googlen Sie es für weitere Informationen…
Das Vergessen der genauen Syntax ist etwas, das mir beim Schreiben von Code sehr oft passiert.
Aber ich programmiere nicht jeden Tag. Manchmal schreibe ich wochenlang keinen Code, weil ich andere Dinge tue (Design in Photoshop, SEO, Schreiben von Inhalten für meine Websites usw.). Ich glaube, Chris ist in einer ähnlichen Situation.
Jemand, der nichts anderes tut, als den ganzen Tag Code zu schreiben, wird höchstwahrscheinlich nicht vergessen, wie man eine for-Schleife in einer der Sprachen schreibt, die er regelmäßig benutzt.
Ich erkenne an, dass dies nicht im „Geist“ ist, aber es kann denen helfen, die mit JavaScript nicht vertraut sind. In Ihrer JS-Schleife deklarieren Sie
inicht, sodass es sich im globalen Gültigkeitsbereich befindet, was zu Problemen mit anderen Verwendungen voniin Ihrem Code führen kann. Es sollte seinDeshalb habe ich Dash immer geöffnet und bereit, wenn ich arbeite!
Wenn Sie Dash noch nicht kennen, konsultieren Sie bitte: http://kapeli.com/dash
Nota bene: Ich habe kein Interesse an einer Zusammenarbeit mit den Dash-Entwicklern, ich finde es einfach eine großartige Lösung, um in dieser Art von Situationen zu helfen… ;-)
Vielleicht möchten Sie diese hinzufügen
Python
Java
Das Ruby-Beispiel gilt laut Ruby Styleguide als schlechte Praxis
Persönlich sind die einzigen
for-Schleifen, an die ich mich richtig erinnere, die miteachaus Ruby und Haml, weil sie der natürlichen Sprache am ähnlichsten zu sein scheinen. In anderen Sprachen mag ich die am wenigsten, die(i = 0; i < 5; i++)sind, weil sie bei 99 % ihrer Verwendung viel zu konfigurierbar sind. Meistens möchte ich einfach über die gesamte Liste iterieren.Genau!!
Viele Male werde ich auch verwirrt, oder sollte ich sagen, vergesse!
Ähm… Hamls for-Schleife ist Rubys for-Schleife…
Genau!
Ein guter Programmierer ist nicht jemand, der die Syntax perfekt erinnert. Sie können jede Syntax oder Funktion, die Sie benötigen, in Sekundenschnelle nachschlagen. Es geht darum, kreativ und durchdacht zu sein.
Ich empfehle jedem, der programmiert, etwas wie AutoHotkey zu verwenden – einen coolen Text-Auto-Expander.
Beispiel: Ich tippe "fori" und es erweitert sich zu meiner gängigsten PHP-for-Schleife. (Verdammt, ja, es hat sich auch hier erweitert, als ich es getippt habe haha :)
Ich richte alle meine Skripte in einer Textdatei ein, diese Datei ist in Dropbox, also ist sie auf jedem Computer, den ich benutze, gleich.
Wie Chris erwähnt hat, gibt es viele Sprachen, daher kann man auch einrichten; pfor, jfor, sfor… usw.
Ich glaube, wir kommen in eine Zeit, in der wir uns nicht mehr an die Rechtschreibung oder die genaue Syntax für einige Dinge erinnern müssen – Computer sind zu unserer Hilfe da :)
Bestätigt, jedes Thema ist diskussionswürdig, selbst etwas so Nettes wie das
Das ist, was ich in all meinen Seminaren sage. Jetzt habe ich jemanden, der mich unterstützt. :P
Ich liebe diese Seite. Irgendwie lande ich hier, ob ich will oder nicht. Chris' Artikel haben keinen Egoismus oder anderen Mist. Das gibt mir Vertrauen als Webentwickler, dass diese Art von "einfachen" Dingen, die ich auch vergesse / manchmal Probleme damit habe, auf allen Ebenen existieren. Danke.
Wie schnell Sie Ihre kleinen Code-Probleme googeln können, zählt auch. **Es ist der Geist! **
Von allen Sprachen ist die ASP-Classic-Schleife die am einfachsten zu merkende Schleife.
Schöner Artikel, danke.
Toller Beitrag, ich bin ein Front-End-Entwickler, der unweigerlich Zeit mit dem Feintuning meiner Fehler von Sprache zu Sprache verbringt. Mein Schleifen ist etwas wie Spanglish geworden, immer nahe an der nativen Syntax, aber gewürzt mit einem kleinen Sabor von JS oder SCSS.
Lustig… das ist nur eines dieser Dinge, die mit dem Programmieren in vielen Sprachen kommen. Ich kann nicht zählen, wie oft ich die falsche Syntax für einfache Funktionen (wie diese) verwendet habe, weil ich in einer Sprache tippe und in einer anderen denke. Haha!
for ($i = 1; $i < 5; $i++) {
echo $i;
}
Alle paar Male mache ich einen Fehler und benutze Kommas anstelle von Semikolons. Das bringt mich wirklich durcheinander (kein Wortspiel beabsichtigt).
Diese Seite hat viele gängige Algorithmen für mehrere beliebte Programmiersprachen. Sie können nach Algorithmus oder nach Sprache anzeigen.
http://langref.org/all-languages/program-structure/loops
Ich kann mich auch nicht an die verschiedenen Syntaxen erinnern. Aber mein Editor kann es. vim lässt mich **fl** tippen. Es erscheint eine for-Schleife in der richtigen Syntax für die Sprache. **cl** für eine Klasse, **wl** für eine while-Schleife usw.
Ich nehme an, viele Editoren können das oder können es mit entsprechenden Plugins.
-sq
Guter Punkt. phpStorm hat diese Funktion auch, hilft sehr beim Zen Coding. Kann kurze Codes pro Dateityp festlegen. So kann "fl" mehrfach verwendet werden und die IDE weiß, welche for-Schleife je nach Dateityp generiert werden soll. Kluge hilfreiche Sachen :)
Amen.
Ich bin froh zu hören, dass ich nicht der Einzige bin.