ArkTS与C++数据类型转换

ops/2025/2/4 16:07:12/

背景

做过Android JNI开发的小伙伴对Java和C++的互相调用有所了解,JNI提供了Java和C++的类型转换,与JNI不同的是NAPI中,TS调用C++的参数都封装到了一起:

static napi_value add(napi_env env, napi_callback_info info)  
{
}

不管要传递多少个参数,都封装在napi_callback_info中,可以从napi_callback_info中获取全部参数信息:

size_t argc = 7;//参数个数
napi_value args[7] = {nullptr};
napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);

接下来就可以从args中分别读取ArkTS传来的参数信息,下面介绍如何进行类型转换。

ArkTS转C++类型

TS基本数据类型:

  • 数字类型 number
  • 字符串类型 string
  • 布尔类型 boolean
  • 任意精度整形 bigint
  • 对象类型 object

C++基本数据类型:

  • 整形 int、short、long、long long
  • 浮点型 float、double、long double
  • 字符型 char
  • 布尔型 bool

基本数据类型转换

NAPI提供了上面两种语言对应的类型的转换:

  • 转换为布尔类型:napi_get_value_bool
  • 转换为int32:napi_get_value_int32
  • 转换为int64:napi_get_value_int64
  • 转换为无符号32位:napi_get_value_uint32
  • 转换为double:napi_get_value_double
  • bitint 64位:napi_get_value_bigint_int64
  • bitint 无符号64位:napi_get_value_bigint_uint64

除了bool类型,其他基本类型就是数值类型,TS中的数值类型对应C++各种细分类型࿰


http://www.ppmy.cn/ops/155603.html

相关文章

Cocoa和Cocoa Touch是什么语言写成的?什么是Cocoa?编程语言中什么是框架?为什么苹果公司Cocoa类库有不少NS前缀?Swift编程语言?

Cocoa和Cocoa Touch是什么语言写成的? 二者主要都是用Objective-C语言编写而成的。 什么是Cocoa? Cocoa是苹果操作系统macOS和iOS上的应用程序开发框架集合,核心语言是Objective-C编程语言,在移动平台被称为Cocoa Touch,Cocoa包含多个子框架…

优化 PHP-FPM 参数配置:实现服务器性能提升

PHP-FPM(PHP FastCGI Process Manager)是PHP的一种替代实现,具有更好的性能和更高的并发处理能力。正确配置和优化PHP-FPM参数,可以显著提高服务器的性能和稳定性。本文将深入介绍PHP-FPM的关键参数,并提供优化建议&am…

单调队列 滑动窗口(题目分析+C++完整代码)

滑动窗口/单调队列 原题链接 AcWing 154. 滑动窗口 题目描述 给定一个数组。 有一个大小为 k的滑动窗口,它从数组的最左边移动到最右边。 你只能在窗口中看到 k个数字。 每次滑动窗口向右移动一个位置。 以下是一个例子: 该数组为 [1 3 -1 -3 5 3 6 7…

吉首市城区地图政府附近1公里范围高清矢量pdf\cdr\ai内容测评

吉首市城区地图以市政府中心附近1公里范围高清矢量pdf\cdr\ai(2021年详细),可以用cdr,ai软件打开编辑文字内容,放大。

虚幻基础17:动画层接口

能帮到你的话,就给个赞吧 😘 文章目录 animation layer interface animation layer interface 动画层接口:动画图表的集。仅有名字。 添加到动画蓝图中,由动画蓝图实现动画图表。

C++ Primer 自定义数据结构

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…

利用Python高效处理大规模词汇数据

在本篇博客中,我们将探讨如何使用Python及其强大的库来处理和分析大规模的词汇数据。我们将介绍如何从多个.pkl文件中读取数据,并应用一系列算法来筛选和扩展一个核心词汇列表。这个过程涉及到使用Pandas、Polars以及tqdm等库来实现高效的数据处理。 引…

Python安居客二手小区数据爬取(2025年)

目录 2025年安居客二手小区数据爬取观察目标网页观察详情页数据准备工作:安装装备就像打游戏代码详解:每行代码都是你的小兵完整代码大放送爬取结果 2025年安居客二手小区数据爬取 这段时间需要爬取安居客二手小区数据,看了一下相关教程基本…