開発環境
- OS X Mavericks - Apple (OS)
- Dart Editor (開発環境)
- Dartium | Dart/ Structured web apps (ブラウザ, Dart VM 用 (Chromium with the Dart VM))
- Safari (ブラウザ, JavaScript 用)
- Dart (プログラミング言語)
C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)のⅡ部(単純なプログラミング)の10章(Cプリプロセッサ)、10.2(条件付きコンパイル)、10.3(インクルードファイル)、10.4(パラメータをとるマクロ)、10.5(高度な機能)、10.8(プログラミング実習)実習10-3をDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
実習 10-3.
コード
sample.dart
import 'dart:html'; void main(){ var run = querySelector('#run'), clear = querySelector('#clear'), pre0 = querySelector('#pre0'); run.onClick.listen((MouseEvent event){ var result = window.navigator.userAgent + '\n'; try{ numChars.forEach( (e) => result += isHex(e) ? '$e: 16進数。\n': '$e: 16進数ではない。\n'); upperLetters.forEach((e) => result += '$e: ${isHex(e) ? '16進数。': '16進数ではない。'}\n'); lowerLetters.forEach((e) => result += '$e: ${isHex(e) ? '16進数。': '16進数ではない。'}\n'); } catch (e){ result += e; } finally { pre0.text = result; } }); clear.onClick.listen((MouseEvent event) => pre0.text = ''); } List<String> numChars = new List.generate(10, (int index) => index.toString()); List<String> lowerLetters = new List.generate(10, (int index) => new String.fromCharCode('a'.codeUnitAt(0) + index)); List<String> upperLetters = new List.generate(10, (int index) => new String.fromCharCode('A'.codeUnitAt(0) + index)); bool isDigit(String s){ if (s.length != 1){ throw 'isDigit: 1文字'; } return s.length == 1 && s.compareTo('0') >= 0 && s.compareTo('9') <= 0; } bool isHex(String s){ if (s.length != 1){ throw 'isHex: 1文字'; } return isDigit(s) || (s.compareTo('A') >= 0 && s.compareTo('F') <= 0) || (s.compareTo('a') >= 0 && s.compareTo('f') <= 0); }
0 コメント:
コメントを投稿