aiscript
aiscript copied to clipboard
hex APIの変更の提案
hex APIの変更の提案
現行API
@Num:to_hex(x: num): str
@Num:from_hex(hex: str): num
方針
- 配列を16進文字列(hex)にする用途の方が多そう
- 数値単体をhexにする用途はあまりないと思われるが、無くはなさそう
- プリミティブプロパティを積極的に使う
新API
- 各オブジェクトにあるto_hexでhexを生成する基本コンセプト
- 文字列からはstd関数を使って配列に変換できる
@(v: num).to_hex(): str
@(v: arr<num>).to_hex(): str
@Arr:from_hex(hex: str): arr<num>
@Arr:from_hex(hex: str): arr<num>
数値の境目は何で区切る感じですか?
桁が決まっているわけではないので使い勝手は良くない気がします
2桁ずつ(0~255)の区切り文字なしで考えてます 確かに区切り文字は考えてなかったです
32bitの値をhexで表示したい場合などの要求は満たせないですね..
こうですかね?
案2
@(v: num).to_hex(): str
@Num:from_hex(hex: str): num // 変更なし
to_hexだけプリミティブプロパティ化する感じですね。
正直@Num:from_hex(hex: str): num
の名前空間が引数ではなく返り値の型になっている点が気になりますが、Str
にすると更に違和感が大きくなる気がするので特例でNum:
でもいいと思います。
候補としては
-
@Num:from_hex(hex: str): num
-
@Hex:to_num(hex: str): num
ですかね
@Hex:to_num(hex: str): num
これ一つのために名前空間を作るのか…という気はしますね
「num
の生成」に視点を置くならNum
でいいと思います
名前空間は引数がどうかより意味的にどこに所属すべきかで考える方がしっくり来ます
まあ@Num:from_hex(hex: str): num
でよさそうですかね