"ByteArray" (コンパイルタイプ)
"ByteArray" (コンパイルタイプ)
"ByteArray"
バイトの一次元配列を表す.
詳細
- "ByteArray"はTypedおよび型を指定する関連した構造で使うことができる.
- "ByteArray"オブジェクトは自動的にメモリ管理される.
コンストラクタ
- ByteArray["string"]はBase64で符号化した文字列からバイト値を抽出することによって"ByteArray"オブジェクトを構築する.
- ByteArray[na]は配列 na のコピーを構築する.ここで na は型"NumericArray"::["UnsignedInteger8", 1]を持つ.
- CreateTypeInstance["ByteArray",len]は長さ len のバイト配列を構築する.
- CreateTypeInstance["ByteArray",byte,len]は byte 値で満たされた長さ len のバイト配列を構築する.
例題
すべて開く すべて閉じる例 (2)
"ByteArray"はCompiledCodeFunctionの入力または出力として使うことができる:
cf = FunctionCompile[Function[Typed[ba, "ByteArray"], ba]]cf[ByteArray[{1, 2, 3}]]func = FunctionCompile@Function[Typed[str, "String"],
ByteArray[str]
]func["AQIDBAUGBwg="]スコープ (8)
構築 (4)
func = FunctionCompile@Function[Typed[str, "String"],
ByteArray[str]
]func["AQIDBAUGBwg="]func = FunctionCompile@Function[Typed[na, "NumericArray"::["UnsignedInteger8", 1]],
ByteArray[na]
]func[NumericArray[{1, 2, 3}, "UnsignedInteger8"]]指定された長さの"ByteArray"インスタンスを生成する:
func = FunctionCompile@Function[Typed[len, "MachineInteger"],
CreateTypeInstance["ByteArray", len]
]Length[func[10]]Normal[func[10]]初期値で満たされた,指定の長さの"ByteArray"インスタンスを生成する:
func = FunctionCompile@Function[{Typed[byte, "UnsignedInteger8"], Typed[len, "MachineInteger"]},
CreateTypeInstance["ByteArray", byte, len]
]Normal[func[42, 10]]変換 (4)
"ByteArray"を"NumericArray"に変換する:
func = FunctionCompile@Function[{Typed[ba, "ByteArray"]},
Cast[ba, "NumericArray"::["UnsignedInteger8", 1]]
]func[ByteArray[{1, 2, 3}]]"NumericArray"から"ByteArray"に変換する:
func = FunctionCompile@Function[{Typed[na, "NumericArray"::["UnsignedInteger8", 1]]},
Cast[na, "ByteArray"]
]func[NumericArray[{1, 2, 3}, "UnsignedInteger8"]]"ByteArray"を"InertExpression"に変換する:
func = FunctionCompile@Function[{Typed[ba, "ByteArray"]},
Cast[ba, "InertExpression"]
]func[ByteArray[{1, 2, 3}]]"InertExpression"から"ByteArray"に変換する:
func = FunctionCompile@Function[{Typed[expr, "InertExpression"]},
Cast[expr, "ByteArray"]
]func[ByteArray[{1, 2, 3}]]特性と関係 (5)
func = FunctionCompile@Function[Typed[ba, "ByteArray"],
Length[ba]
]func[ByteArray[{1, 2, 3}]]func = FunctionCompile@Function[Typed[ba, "ByteArray"],
Head[ba]
]func[ByteArray[{1, 2, 3}]]func = FunctionCompile@Function[{Typed[ba, "ByteArray"], Typed[x, "MachineInteger"]},
ba[[x]]
]func[ByteArray[{1, 2, 3}], 2]func = FunctionCompile@Function[{Typed[ba, "ByteArray"]},
Normal[ba]
]func[ByteArray[{1, 2, 3}]]func = FunctionCompile@Function[{Typed[ba, "ByteArray"]},
ToString[ba]
]func[ByteArray[{1, 2, 3}]]考えられる問題 (2)
Partを使う場合,その要素が存在しないとランタイムエラーを引き起こす可能性がある:
func = FunctionCompile[Function[Typed[ba, "ByteArray"], ba[[4]]]];
func[ByteArray[{1, 2, 3}]]キャストを使う場合,そのオブジェクトがターゲットの型に変換できないと,ランタイムエラーを引き起こすことがある:
func = FunctionCompile[Function[Typed[expr, "InertExpression"], Cast[expr, "ByteArray"]]];
func[4]テクニカルノート
履歴
2023 で導入 (13.3)