2013年11月25日月曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の9章(集合と辞書)、9.5(練習問題)、7をDartで解いてみる。

その他参考書籍

9.5(練習問題)、7.

コード

sample.dart

import 'dart:html';

void main() {
  InputElement run = querySelector('#run_dart');
  InputElement clear = querySelector('#clear');
  Element pre = querySelector('#pre0');
  run.onClick.listen((MouseEvent event){
    String result = '${window.navigator.userAgent}\n';
    Map<String, int> m = {'a':1, 'b':2};
    result += 'Map: $m\n';
    var temp = fetchAndSet(m, 'a', 3);
    result += '元の値: $temp, $m\n';
    try{
      temp = fetchAndSet(m, 'c', 4);
      result += '元の値: $temp, $m\n';
    } catch (e){
      result += '$e\n';
    }
    pre.text = result;
  });
  clear.onClick.listen((MouseEvent event) => pre.text = '');
}

fetchAndSet(Map m, var key, var value){
  if (m.containsKey(key)){
    var temp = m[key];
    m[key] = value;
    return temp;
  }
  throw 'Unable to replace value for nonexistent key';
}


出力結果から、DartのMapは関数で書き換え可能なので、参照みたい。

0 コメント:

コメントを投稿