プライベートメンバの扱い

18 views
Skip to first unread message

yutopp

unread,
Mar 8, 2012, 2:16:56 PM3/8/12
to dart...@googlegroups.com
こんにちは。
DartEditor(build: 5184)において、Web Applicationタイプでプロジェクトを生成したときに下のコードが正しく動かないのですが、これはバグなんでしょうか・・・

/*ここから*/

//#library('need');
#import('dart:html');

class having_no_private_field {
  having_no_private_field( this.msg );

  void write() {
    document.query('#status').innerHTML = msg;
  }
  
  String msg;
}

//libraryNameである1行目の"#library('need');"がない場合、
//privateフィールドを持っていると実行時にエラーが発生する・・・?
class having_private_field {
  having_private_field( this._msg );

  void write() {
    document.query('#status').innerHTML = _msg;
  }
  
  String _msg;
}

void main() {
  new having_no_private_field('succeed!').write();
  new having_private_field('failed!').write();
}

/*ここまで*/


Server Applicationの場合は、下のようなコードでも平気でした。

/*ここから*/

//#library('need');

class having_no_private_field {
  having_no_private_field( this.msg );

  void write() {
    print( msg );
  }
  
  String msg;
}

class having_private_field {
  having_private_field( this._msg );

  void write() {
    print( _msg );
  }
  
  String _msg;
}

void main() {
  new having_no_private_field('succeed!').write();
  new having_private_field('failed!').write();
}

/*ここまで*/


よろしくお願いします。

yutopp

unread,
Mar 8, 2012, 2:20:35 PM3/8/12
to dart...@googlegroups.com
すみません、補足です;
Web Applicationの方は、ライブラリ指定の "#library('need');" が無いと実行すら行われず、 ライブラリ指定をすると正常に動作し 'failed!' が表示されます。
Server Applicationの方は、'succeed!' と 'failed!' の両方が出力されました。
Reply all
Reply to author
Forward
0 new messages