- 追加された行はこの色です。
- 削除された行はこの色です。
// * D
#contents
* auto
- 変数宣言で使うとスコープアウトでデストラクタが呼ばれる
- クラス宣言で使うとautoでしか宣言できなくできる
* Cと文字列
import std.string;
char[] s;
std.string.toCharz(s);
toStringz(s);
"foo\0"
\0で終わる char *を返す。~
旧 toCharz。
みたいな?
* 配列
* sizeとlength
** .sizeと.length
- .length 配列の長さ
- .size 使用バイト数(よく見たら非推奨だった) .sizeof
- .size 使用バイト数(よく見たら非推奨だった)~
.sizeof~
動的配列だと .sizeof は参照なので固定の値
ハマった・・・
* 配列の初期化子
** 初期化子
staticでないと使えない
staticな変数でないと使えない
** スライス
中の値は元の配列の参照。
* 正規表現
** マッチした位置の取得
RegExp re = new RegExp(`[0-9]+`,null);
char src[] = "2005/04/23";
for (bit isFirst=true; ; isFirst=false) {
int result = isFirst ? re.test(src) : re.test();
if (!result) break;
int start = re.pmatch[0].rm_so;
int end = re.pmatch[0].rm_eo;
printf("%s: %d - %d\n", toStringz(src[start..end]), start, end);
}
publicではないpmatchを使う違法くさいコード。
* 整数除算
負の数を正の数で割ると怪しい。(v0.121)
* yaneSDK4D
- -dをつけないとキャストで怒られる
- floatをintに変換できないといって怒られる
-- y4d_draw/drawcontext.d
-- y4d_draw/fontrepository.d
-- y4d_draw/scenariodraw.d
-- など
- key in aaray を bitに変換できなくなったらしい
-- (key in aaray) != null で
- uintで-1はキャストしないと怒られる
- makefileよりMakefile.yaneSDK4D.linux
-- dmdのところを書き換え
-- lib〜.a を .libに
-- .o は .objに
-- debugをreleaseに
- .size は .sizeofに