Obecnie uczę się D i podejmuję kroki dla dzieci, więc proszę o zachowanie mnie.Kod z książki nie działa
Czytam książkę po prostu zatytułowaną "Język programowania D". Używam D-IDE do mojego kodu. Obecnie piszę program, który ma dodawać słowa do słownika (słownika), jeśli książka nie ma już tego słowa.
Problem polega jednak na tym, że kod, który podaje książka, jest nieprawidłowy, a zamiast po prostu poruszać się i czytać wyniki, które powinny być itp. Chciałem spróbować go rozwiązać. Oczywiście problem, że jestem tak nowy do D.
Kod wygląda w następujący sposób:
import std.stdio, std.string;
void main() {
uint[string] dictionary;
foreach(line; stdin.byLine()) {
// Break sentence into words
// Add each word in the sentence to the vocabulary
foreach(word; splitter(strip(line))) {
if(word in dictionary) continue; // Nothing to do
auto newID = dictionary.length;
dictionary[word] = newID;
writeln(newID, '\t', word);
}
}
}
IDE mówi Error: undefined identifier splitter
i ponieważ jestem bardzo doświadczony z Java, myślę błąd oznacza, że metody nie istnieje i że starała się go traktować jako zmienną, ale to też nie istnieje. Dlatego próbowałem zmienić go na "podzielony". Powoduje to kolejny błąd w słowniku: Error: associative arrays can only be assigned values with immutable keys, not char[]
Tak naprawdę nie wiem, co zrobić, aby rozwiązać ten problem i sprawić, by działało. Tak frustrujące, gdy kod z książek, które mają cię uczyć, nie działają. Używam dmd2.
Na pewno ISN książka Nazywa się "Język programowania D"? Ta próbka i problemy kompilujące ją z najnowszymi narzędziami brzmią [potężnie znajome] (http://erdani.com/tdpl/errata/) ... – shambulator
Tak, to jest ta książka. Nie dostałem nic z tego, kiedy dostałem książkę .. <. < – OmniOwl
Niestety niektóre rzeczy uległy zmianie od czasu opublikowania, ale ta książka jest wciąż daleko i jest jednym z najlepszych dostępnych zasobów D, a także ogólnie bardzo dobra książka techniczna. – shambulator