Nama Word bukan kelas/tipe

Saya memiliki tiga kelas di Dart, ditunjukkan di bawah ini:

Sedikit:

part of CB_Crypto;

class Bit {
  bool _state = false,
       _sympathetic = false;
  int _alignment = 0;

  Bit(List args) {
    _state = args[0];
    _sympathetic = args[1];
    _alignment = args[2];
  }

  bool state() => _state;

  bool not() => _state = !_state;

  bool set(bool state) => _state = state;

  bool isSympathetic() =>  _sympathetic;

  operator &(Bit b) => state() && b.state();

  operator |(Bit b) => state() || b.state();
}

Kata:

part of CB_Crypto;

class Word {
  List<Bit> _bits = [];

  Word(List<List> bits) {
    bits.forEach((bit) => _bits.add(new Bit(bit)));
  }

  bool not(int i) => _bits[i].not();

  void notAll() => _bits.forEach((bit) => bit.not());

}

Meja:

part of CB_Crypto;

class Table {
  List<Word> _words;

  Word(List<List> words) {
    words.forEach((word) => _words.add(new Word(word)));
  }
}

Ini semua ada dalam file berbeda dan merupakan bagian dari perpustakaan yang sama. Namun saya mendapat peringatan dari Dartium di kelas Tabel karena menggunakan Word sebagai tipe dan mencoba membuat instance objek Word: the name "Word" is not a (type/class) and cannot be used as a parametrized type.

Saya yakin saya menulis kelas Word yang mirip dengan kelas Bit, dan itu tidak menimbulkan kesalahan saat digunakan di Tabel saat Word digunakan. Apakah saya melewatkan sesuatu?


person Melvin Sowah    schedule 15.06.2014    source sumber
comment
Bisakah Anda menunjukkan kode yang menimbulkan kesalahan ini?   -  person Robert    schedule 15.06.2014
comment
Saya ingin tahu apakah ini berhasil: Word(List<List> words) { - Untuk pemahaman yang lebih baik, Anda harus mengetikkan daftar (bagian dalam) untuk kami.   -  person Robert    schedule 15.06.2014
comment
Apakah Anda menambahkan part "file.dart" untuk setiap bagian ke perpustakaan Anda?   -  person Günter Zöchbauer    schedule 15.06.2014
comment
@Robert kode yang menimbulkan kesalahan adalah kelas Tabel (Definisi daftar dan loop forEach.   -  person Melvin Sowah    schedule 15.06.2014
comment
@GünterZöchbauer ya, benar.   -  person Melvin Sowah    schedule 15.06.2014


Jawaban (1)


Anda menggunakan Word sebagai Konstruktor dalam kelas Tabel.

Word(List<List> words) {
  words.forEach((word) => _words.add(new Word(word)));
}

Konstruktor Anda seharusnya berukuran Table dari tampilannya.

Table(List<List> words) {
  words.forEach((word) => _words.add(new Word(word)));
}
person Kevin Sheehan    schedule 15.06.2014
comment
Aku tidak percaya aku tidak menyadarinya. Saya menyalin dan menempelkan kode Tabel dari Word dan mengubah semua nama karena pada dasarnya sama. Saya kira saya melewatkan satu :) terima kasih - person Melvin Sowah; 15.06.2014