- 158 名前:134 mailto:sage [2007/12/01(土) 17:12:18 ]
- >>143,>>147
なるほど。確かにstd.string.splitだとinvariant型のほうがいい気がするな。 もしconst型だったら、 > 必要なのは、データを絶対に書き換えないという保証のもとにモジュールから関数にデータを読み取らせるプロトコルです。 を満たすための条件(戻り値のデータに書き換えが起こらない条件)が関数の定義からだけでは読み取れず、 ドキュメントを参照して注意しなければならない、という面倒なことが起こるからな。 じゃあ、std.string.countならどうだろう?関数の実引数にしてから関数が終了するまでの間だけ 他から書き換えられないように注意すれば引数がconst型でもいいような気がするんだけど。 これならドキュメント見なくてもconst型の使い方から終了まで書き換えちゃいけないということは判断可能だし、 戻り値がuintだから関数が終了した後まで面倒を見なくてもいい。 char[]型を実引数にするために.idupによる無駄なコピーもしなくていいし、cast(invariant)みたいな無茶なキャストも使わないですむ。
|

|