|
|
|
|
|
|
|
Moin
|
Java:
|
Code: |
public static File sucheDateiNamen(String name, File directory) {
File[] files = directory.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].getName().equals(name))
return files[i];
if (files[i].isDirectory())
sucheDateiNamen(name, files[i]);
}
}
|
|
Wieso darf ich das nicht returnen?
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Floder am 23.01.2009 10:49]
|
|
|
|
|
|
Wie lange ist denn dein files[]-Array gültig und wann schlägt die GarbageCollection zu
|
|
|
|
|
|
|
Ich seh da keinen Grund, warum das return-Statement da ungültig sein sollte. Problematisch finde ich vielmehr, dass es da einen Ausführungspfad gibt, der *keinen* Rückgabewert hat.
|
|
|
|
|
|
|
Ist doch alles innerhalb der Methode.
|
Code: |
public static File result;
public static File sucheDateiNamen(String name, File directory) {
File[] files = directory.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].getName().equals(name)){
result = files[i];
}
if (files[i].isDirectory())
sucheDateiNamen(name, files[i]);
}
return result;
} |
|
Macht man das dann so, oder ist das kräääg?
@igor]2: Ja, das ist mir auch aufgefallen. Allerdings konnte ich das nicht "beheben". Wird im Falle keiner Rückgabe nicht einfach null zurückgegeben? Bzw. wie würde denn eine saubere Lösung für so ein Problem aussehen?
/E: Gna, vergesst den zweiten Code. Der vergewaltigt die Funktionalität. *g*
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Floder am 23.01.2009 11:16]
|
|
|
|
|
|
Nein, wenn du nichts zurück gibst, kotzt der Compiler. Das mit dem statischen result sieht auch sehr fischig aus. Was soll die Funktion eigentlich machen? Ein File-Objekt eines bestimmten Namens im übergebenen Verzeichnis und Unterverzeichnissen suchen?
|
|
|
|
|
|
|
Genau und das gefundene Fileobjekt zurückgeben.
|
|
|
|
|
|
|
Falls ja, kannst du das z.B. so machen:
|
Code: |
public static File sucheDateiNamen(String name, File directory) {
File[] files = directory.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].getName().equals(name)) {
return files[i];
}
if (files[i].isDirectory()) {
File res = sucheDateiNamen(name, files[i]);
if (res != null) {
return res;
}
}
}
return null;
}
|
|
Das liefert die erste gefundene Datei (kann auch irgendwo tief in einem Unterverzeichnis stecken), oder null, wenn keine Datei gefunden wird.
|
|
|
|
|
|
|
| Zitat von Achsel-des-Bösen
| Zitat von TriggerTG
Ein Beispiel war ein bekannter Movblfunkanbieter. Mich würde echt mal interessieren wiue da der initial-load ins datawarehouse aussieht.
Er meinte nur, da wüden "nur" täglich Terrabytes im zweistelligen Bereich anfallen (~20TB). D.h. angenommen die würden nächtlich refreshen, müssten ja entsprechend viele TB auch ins DWH einfließen.
| |
Trigger, nicht genug damit das du total auf theoretische Informatik stehst und damit schonmal den meisten Menschen unsympatisch bist, jetzt verwendest du noch ständig irgendwelche beschissenen Abkürzungen...man könnte meinen du hätte im Zweitfach BWL!
/: Ja, ich weiß dass es Datawarehouse sein soll, aber verdammt nochmal, Datawarehouse ist eine Bullshitbingo Abkürzung. Das ist doch bloß ein Haufen Server die irgendwo rumstehen...daran ist absolut nicht tolle, ausser das sie enorm viel Strom verbrauchen, blau blinken und so laut sind, dass man nach ein paar Stunden darin total duch den Wind ist.
(Mein erstes Bein war das linke!)
| |
Ich hab doch davon selbst keine Ahnung!
Ich habe nur wiederholt was der Typ im Vortrag erzählt hat
|
|
|
|
|
|
|
Danke. Manchmal steh ich einfach auf dem Schlauch.
/e eeeelender...
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Floder am 23.01.2009 11:28]
|
|
|
|
|
|
| Zitat von Achsel-des-Bösen
(Mein erstes Bein war das linke!)
| |
so fühlt sich ein "rABBI bauen" an.
|
|
|
|
|
|
|
Tääst?
|
|
|
|
|
|
|
So, da ich jetzt vorraussichtlich bis ende Juni wieder einer geregelten Bürotätigkeit nachgehe, habe ich jetzt erstmal hier alles eingerichtet. Damit man hier überhaupt was arbeiten kann
|
|
|
|
|
|
|
Oh, und seit neustem gibts hier 8,06¤/Stunde für Studentische Hilfskräfte
|
|
|
|
|
|
|
| Zitat von GH@NDI
Oh, und seit neustem gibts hier 8,06¤/Stunde für Studentische Hilfskräfte
| |
16.5 Pfund hier, also > 17.5 Euro
|
|
|
|
|
|
|
| Zitat von GH@NDI
So, da ich jetzt vorraussichtlich bis ende Juni wieder einer geregelten Bürotätigkeit nachgehe, habe ich jetzt erstmal hier alles eingerichtet. Damit man hier überhaupt was arbeiten kann
| |
Eingerichtet = Bookmark zum GS?
|
|
|
|
|
|
|
| Zitat von igor]2
Falls ja, kannst du das z.B. so machen:
|
Code: |
public static File sucheDateiNamen(String name, File directory) {
File[] files = directory.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].getName().equals(name)) {
return files[i];
}
if (files[i].isDirectory()) {
File res = sucheDateiNamen(name, files[i]);
if (res != null) {
return res;
}
}
}
return null;
}
|
|
Das liefert die erste gefundene Datei (kann auch irgendwo tief in einem Unterverzeichnis stecken), oder null, wenn keine Datei gefunden wird.
| |
bin ich eigentlich der einzige, der Methoden konsequent so schreibt, daß ein Return immer nur einmal, ganz am Ende der Methode, vorkommt?
|
|
|
|
|
|
|
| Zitat von TriggerTG
| Zitat von GH@NDI
So, da ich jetzt vorraussichtlich bis ende Juni wieder einer geregelten Bürotätigkeit nachgehe, habe ich jetzt erstmal hier alles eingerichtet. Damit man hier überhaupt was arbeiten kann
| |
Eingerichtet = Bookmark zum GS?
| |
Ne, Opera installiert, .vimrc und .bashrc angepasst, QuickReply und ModaktionenAusblenden UserScripts reingepackt, urlfilter.ini geladen und 2 Tastenkürzel angepasst
|
|
|
|
|
|
|
| Zitat von GarlandGreene
| Zitat von igor]2
Falls ja, kannst du das z.B. so machen:
|
Code: |
public static File sucheDateiNamen(String name, File directory) {
File[] files = directory.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].getName().equals(name)) {
return files[i];
}
if (files[i].isDirectory()) {
File res = sucheDateiNamen(name, files[i]);
if (res != null) {
return res;
}
}
}
return null;
}
|
|
Das liefert die erste gefundene Datei (kann auch irgendwo tief in einem Unterverzeichnis stecken), oder null, wenn keine Datei gefunden wird.
| |
bin ich eigentlich der einzige, der Methoden konsequent so schreibt, daß ein Return immer nur einmal, ganz am Ende der Methode, vorkommt?
| |
Ich befürchte schon, ja.
Ich finds anders sexier. Wenn ich doch weis, dass ich hier aufhören kann, warum nicht dort auch einfach mittels return raus?
|
|
|
|
|
|
|
weil es schlechter Stil ist
|
|
|
|
|
|
|
Was soll daran schlechter Stil sein? Das vereinfacht den Code doch noch! Aber mit einerm Perl-Programmierer sollte man nicht über Stil streiten
|
|
|
|
|
|
|
| Zitat von GarlandGreene
| Zitat von igor]2
Falls ja, kannst du das z.B. so machen:
|
Code: |
public static File sucheDateiNamen(String name, File directory) {
File[] files = directory.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].getName().equals(name)) {
return files[i];
}
if (files[i].isDirectory()) {
File res = sucheDateiNamen(name, files[i]);
if (res != null) {
return res;
}
}
}
return null;
}
|
|
Das liefert die erste gefundene Datei (kann auch irgendwo tief in einem Unterverzeichnis stecken), oder null, wenn keine Datei gefunden wird.
| |
bin ich eigentlich der einzige, der Methoden konsequent so schreibt, daß ein Return immer nur einmal, ganz am Ende der Methode, vorkommt?
| |
Nein, mache ich normalerweise auch, wenns ohne Verrenkungen möglich ist. Single entry, single exit. Aber ich wollte hier möglichst nah am vorgegebenen Code bleiben.
|
|
|
|
|
|
|
Um keine Ausrede verlegen der Igor
|
|
|
|
|
|
|
Sich aus etwas herauszuwieseln muss man lernen, das unterscheidet uns von den Tieren!
(Das Wiesel ausgenommen.)
|
|
|
|
|
|
|
Ohje, diese Diskussion hatten wir tatsächlich noch nicht.
Ich pack überall ein return hin, wo ich es brauche; alles andere bedeutet Aufwand.
|
|
|
|
|
|
|
Wer hätte gedacht, dass ich jemals mit dem .NET Jünger auf einer Seite stehen würde
|
|
|
|
|
|
|
Ich glaube, das ist auch primär ne Anforderung aus der Ecke des Software Engineering. Macht den Code wohl besser formal testbar oder reduziert die Anzahl der Testfälle. Irgendsowas war da. Ich plane dann schonmal die Refactoring-Diskussion für Anfang Februar, wenns recht ist.
|
|
|
|
|
|
|
Wer braucht schon refactoring? Ich kann reguläre ausdrücke!
|
|
|
|
|
|
|
ICh habe gestern btw festgestellt, was passiert wenn man theoretischen Informatikern ne Frage stellt, von der man eigentlich ausgehen würde, dass sie mit nem knappen Satz zu beantworten wäre.
Bei der letzten Übungsserie gabs eine Aufgabe zur Prädikatenlogischen Resolution.
Es war also eine Wissensbasis und eine Anfrage in der PL1 und bereits in KNF-Matrixform (und entsprechend Skolemform) gegeben.
Es sollte da natürlich klar sein, dass man die Faktenmenge+Anfrage gemeinsam formuliert um sie auf Allgemeingültigkeit zu prüfen. D.h. die Negation der entstehenden Implikation dann auf unerfüllbarkeit zu testen, in dem man die leere Menge prädikatenlogisch resolviert.
Meine Studenten haben allerdings lediglich die Wissensbasis resolviert (mit 3 Klauselmengen) und haben dann einen Resolventen gefunden, der der Anfrage in KNF äquivalent wäre.
Meiner Meinung nach war dieser Ansatz totaler Quatsch, allerdings haben es gute 3/4 der Studenten so gelöst (bzw. abgeschrieben).
Da war ich mir dann halt doch nicht mehr so sicher un habe nachgefragt um ein einfaches "Ja, geht" oder "Nein, hast du richtig gesehen, is quatsch" zu bekommen.
Das Ergebnis war allerdings ne Runde am Whiteboard mit dem Schluss: Ja, es würde tatsächlich gehen, aber so kompliziert kann kein Student gedacht haben, da man die Lösung über die Herbrand-Theorie beweisen könnte.
|
|
|
|
|
|
|
| Zitat von GarlandGreene
bin ich eigentlich der einzige, der Methoden konsequent so schreibt, daß ein Return immer nur einmal, ganz am Ende der Methode, vorkommt?
| |
mach ich auch. das return gehört auf die 0-ebene der funktion, nicht in irgendeine schleife, nicht in ein conditional, nirgendwo sonst. return ist immer das letzte statement und danach kommt nur noch die schließende klammer der funktion. ich bin da irgendwie leicht spleenig.
ehrlicherweise muss ich aber sagen: wenn ich irgendwas kurz zusammenhacke, dann scheiß ich auch gern mal auf stil und dementsprechend wandert das return irgendwo rum, wenn es denn überhaupt eins gibt.
|
|
|
|
|
|
Thema: Gehirnsalat ( wir unter uns ) |