go-printf - 評価
課題の目的
- ...interface{} の扱い方
- 型アサーションとリフレクション - 状態機械によるパース
- フラグ、幅、精度の組み合わせ処理 - 進数変換アルゴリズム
- 浮動小数点の表現評価スケール
| 項目 |
配点 |
説明 |
| 基本フォーマット指定子 |
30点 |
%c, %s, %d, %%, %p |
| 数値フォーマット |
25点 |
%x, %X, %o, %b, %u |
| フラグ処理 |
20点 |
-, 0, +, 空白, # |
| 幅と精度 |
15点 |
固定値、* による動的指定 |
| コード品質 |
10点 |
可読性、テスト |
| **合計** |
**100点** |
| ボーナス |
+30点 |
浮動小数点、カラー |
評価ポイント
基本フォーマット指定子 (各6点)
- [ ]
%c: rune/int を正しく文字として出力
- [ ]
%s: 文字列を正しく出力
- [ ]
%d, %i: 符号付き整数を正しく出力
- [ ]
%%: パーセント記号を正しく出力
- [ ]
%p: ポインタを16進数で正しく出力 数値フォーマット (各5点)
- [ ]
%x: 小文字16進数
- [ ]
%X: 大文字16進数
- [ ]
%o: 8進数
- [ ]
%b: 2進数
- [ ]
%u: 符号なし整数 フラグ処理 (各4点)
- [ ]
-: 左寄せが正しく動作
- [ ]
0: ゼロ埋めが正しく動作
- [ ]
+: 正の数に+が付く
- [ ]
: 正の数の前にスペース
- [ ]
#: 代替形式(0x, 0o) 幅と精度 (各5点)
- [ ] 固定幅の指定
- [ ]
* による動的幅指定
- [ ] 精度の指定(整数・文字列)
よくある減点事項
- 型アサーションの失敗 (-5点)
- パニックを起こす型変換 - -0 の表示問題
- 負数の16進数表示 - %-010d のような矛盾するフラグ - 文字列の精度は最大長
- 整数の精度は最小桁数合格基準
- 最低点: 70点以上
- 必須条件: 基本フォーマット指定子がすべて動作