"String" (コンパイルタイプ)
"String" (コンパイルタイプ)
"String"
文字列型の指定子を表す.
詳細
- "String"はTypedおよび型を指定する関連した構造で使うことができる.
- "String"オブジェクトは自動的にメモリ管理される.
特性
- "String"型の値に保存された文字は,String式に保存された文字と同じである.
コンストラクタ
- CreateTypeInstance["String",cstr,len]は長さ len のC文字列 cstr から文字列を生成する.cstr の型は"CString"でも"Managed"::["CString"]でもよい.
- CreateTypeInstance["String",cstr]はヌル終端C文字列 cstr を生成する.
例題
すべて開く すべて閉じる例 (1)
"String"はCompiledCodeFunctionの入力およびその出力として使うことができる:
cf = FunctionCompile[Function[Typed[arg, "String"], arg <> arg]]cf[ "abcd"]Scope (1)
文字列を"Managed"::["CString"]に型変換し,その内容を出力する:
cf = FunctionCompile@Function[Typed[arg, "String"],
Module[{bytes, len},
bytes = Cast[arg, "Managed"::["CString"]];len = LibraryFunction["strlen"][bytes];
Do[Print@bytes[[i]], {i, 0, len - 1}]
]
]cf["a"];ToCharacterCode["a", "UTF-8"]cf["α"];ToCharacterCode["α", "UTF-8"]Possible Issues (1)
文字列は"CString"に型変換することができるが,使われなくなったらDeleteObjectを呼び出して解放する必要がある:
cf = FunctionCompile@Function[Typed[arg, "String"],
Module[{bytes, len},
bytes = Cast[arg, "CString"];len = LibraryFunction["strlen"][bytes];
Do[Print@bytes[[i]], {i, 0, len - 1}];
DeleteObject[bytes]
]
]cf["a"];ToCharacterCode["a", "UTF-8"]cf["α"];ToCharacterCode["α", "UTF-8"]テクニカルノート
履歴
2019 で導入 (12.0) | 2022 で更新 (13.1)