"String" (编译类型)
"String" (编译类型)
"String"
表示一个字符串类型说明符.
更多信息
- "String" 可使用于 Typed 和相关架构来指定一种类型.
- "String" 对象是由内存自动管理的.
属性
- 储存在 "String" 类型值中的字符与 String 表达式中的一样.
构建器
- CreateTypeInstance["String",cstr,len] 根据长度为 len 的 C 字符串 cstr 创建字符串. cstr 的类型可以是 "CString" 或 "Managed"::["CString"].
- CreateTypeInstance["String",cstr] 根据以 null 结尾的 C 字符串 cstr 创建字符串.
范例
打开所有单元 关闭所有单元基本范例 (1)
"String" 可用作 CompiledCodeFunction 的输入和输出:
cf = FunctionCompile[Function[Typed[arg, "String"], arg <> arg]]cf[ "abcd"]范围 (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"]可能存在的问题 (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)