開発環境
- 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 コメント:
コメントを投稿