在C++有Java这种强类型语言中,常用的Array、List、Set ,在集合中只能是一种类型(可以复习下:《再谈Java数据结构—分析底层实现与应用注意事项)。

int data[] = new int[3]
List<String> person=new ArrayList<>();
Set<Integer> test = new TreeSet<>();

如果需要一个固定大小的不同类型值的集合,我们需要使用元组

C++元组简介

tuple是一个强大的允许存放多个不同类型数据的容器,是对pair的泛化。也可以把他当做一个通用的结构体来用,不需要创建结构体又获取结构体的特征,在某些情况下可以取代结构体使程序更简洁,直观。std::tuple理论上可以有无数个任意类型的成员变量,而std::pair只能是2个成员,因此在需要保存3个及以上的数据时就需要使用tuple元组了(tuple(元组)在c++11中开始引用的。)。

std::tuple<T1, T2, TN> t1; //创建一个空的tuple对象(使用默认构造),对应的元素分别是T1和T2...Tn类型,采用值初始化
std::tuple<T1, T2, TN> t2(v1, v2, ... TN);  //创建一个tuple对象,它的两个元素分别是T1和T2 ...Tn类型; 要获取元素的值需要通过tuple的成员get<Ith>(obj)进行获取(Ith是指获取在tuple中的第几个元素,请看后面具体实例)。
std::tuple<T1&> t3(ref&); // tuple的元素类型可以是一个引用
std::make_tuple(v1, v2); // 像pair一样也可以通过make_tuple进行创建一个tuple对象

元组中的对象可以是任何不同的类型,具有任意长度

Java元组Tuple

元组(tuple),它是将一组对象直接打包存储与其中的一个单一对象.这个容器对象允许读取其中的元素.但是不允许向其中存放新的对象.(这个概念也称为数据传送对象,或信使)

python元组Tuple

Python 的集合式的数据类型list和tuple非常相似,不同的是:

tuple通过小括号( )定义,定义后无法编辑元素内容(即不可变),而list通过中括号[ ]定义,其元素内容可以编辑(即可变),编辑动作包含删除pop( )、末尾追加append( )、插入insert( ).

list1=['cong','rick','long']//list
tupe1=('Jan','Feb','Mar')//tuple,元组元素不可以被修改,不能增加也不能删除。
tupeformList = tuple(list1)

python的元组性质和java类似

元组和列表list一样,都可能用于数据存储,包含多个数据;

但是和列表不同的是:列表只能存储相同的数据类型,而元组不一样,它可以存储不同的数据类型,比如同时存储int、string、list等,并且可以根据需求无限扩展。

TypeScript元组Tuple

TypeScript把强类型射到了JavaScript内,使得JavaScript更像Java了,如:

let sites:string[]  ----> String args[]

JavaScript数组本来就可以存放任意类型。但是TypeScript,就变成元组了。其实你不了解元组这个概念也可以照样用。就当类型都要指定就行。

let myTuple: [number, string, boolean] = [1, 'Poplar', true];

对于越界的元素,它的类型会被限制为元组中每个类型的联合类型

TypeScript元组继承自于函数编程语言(如 F#)——一家亲。

参考文章:

C++ tuple元组的基本用法(总结)  https://blog.csdn.net/sevenjoin/java/article/details/88420885

C++中使用tuple https://blog.csdn.net/xiahn1a/article/details/41670203

Java元组Tuple介绍与使用 https://blog.csdn.net/u013412772/article/details/74298257

转载本站文章《TS数据类型:从C++/Java/Python到TS看元组tuple—元组的来龙去脉》,
请注明出处:https://www.zhoulujun.cn/html/webfront/ECMAScript/typescript/2020_0413_8380.html

TS数据类型:从C++/Java/Python到TS看元组tuple—元组的来龙去脉的更多相关文章

  1. python基础之 list和 tuple(元组)

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...

  2. Python之列表、字符串、元组和字典的基本用法

    1 模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,以后的课程中会深入讲解常用到的各种库,现在,我们先来象征性的学2个简单 ...

  3. TS数据类型:类型别名/联合类型/字面量类型/类型推论等纲要

    在学C/C++  Java等强类型语言时,变量类型是唯一的,需要先指定.PHP JavaScript等弱类型语言时,无需指定变量类型 但是,TypeScript里面的联合类型 (Union Type) ...

  4. Python数据类型list(列表)和tuple(元组)

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...

  5. (八)map,filter,flatMap算子-Java&Python版Spark

    map,filter,flatMap算子 视频教程: 1.优酷 2.YouTube 1.map map是将源JavaRDD的一个一个元素的传入call方法,并经过算法后一个一个的返回从而生成一个新的J ...

  6. 芒果TV招聘研发工程师(JAVA PYTHON),地点长沙

    长沙芒果TV招聘高级 JAVA Python 工程师,工作地点:湖南广电   有兴趣的邮件0xmalloc@gmail.com; zealotyin@qq.com 公司有一大批从北京上海一线互联网企业 ...

  7. paip.提高效率---集合的存取括号方式 uapi java python php js 的实现比较

    paip.提高效率---集合的存取括号方式 uapi java python php js 的实现比较 ##java ----------- 在JDK1.7中,摒弃了Java集合接口的实现类,如:Ar ...

  8. paip.复制文件 文件操作 api的设计uapi java python php 最佳实践

    paip.复制文件 文件操作 api的设计uapi java python php 最佳实践 =====uapi   copy() =====java的无,要自己写... ====php   copy ...

  9. paip.获取文件名从路径uapi java python php总结...

    paip.获取文件名从路径uapi java python php总结... =====uapi basename_noext($fname); =============java  自己写.. St ...

  10. paip.日期时间操作以及时间戳uapi php java python 总结

    paip.日期时间操作以及时间戳uapi php java python 总结 ///uapi Date 函数 | Day 函数 | Hour 函数 | Minute 函数 | Month 函数 | ...

随机推荐

  1. DP 杂题选做

    部分详见: 概率期望 DP 学习笔记 树形 DP 学习笔记 其余题就不具体分类了. P1220 关路灯 题解说这是区间 DP 经典题,但我以前居然没听说过,这下尴尬了. 设 \(f_{i,j,0/1} ...

  2. 立方骑士(lgP7354)

    来水篇题解((( 图炸了,去洛谷博客看吧. 注:在本篇题解中, \(K\) 表示国王, \(N\) 表示骑士,不同颜色的 \(X\) 表示该位置国王可以达到,且被与之相同颜色的骑士封锁.方法不唯一,图 ...

  3. 文心一言 VS 讯飞星火 VS chatgpt (128)-- 算法导论11.1 3题

    三.用go语言,试说明如何实现一个直接寻址表,表中各元素的关键字不必都不相同,且各元素可以有卫星数据.所有三种字典操作(INSERT.DELETE和SEARCH)的运行时间应为O(1)(不要忘记 DE ...

  4. 【日常收支账本】【Day03】完成编辑账本界面的新增动账记录功能——通过ElementTree加XPath实现

    一.项目地址 https://github.com/LinFeng-BingYi/DailyAccountBook 二.新增 1. 解析xml文件 1.1 功能详述 解析所设计的xml文件格式,并将所 ...

  5. 嵌入式C编码规范

    每个程序员都有自己的编码风格,自己喜欢就好. 嵌入式C编码规范 上述博文来自转载

  6. Spring5学习随笔-Spring5的第一个程序(环境搭建、日志框架整合)

    第二章.第一个Spring程序 1.软件版本 1.JDK1.8+ 2.Maven3.5+ 3.IDEA2018+ 4.SpringFramework 5.1.4 官网:www.spring.io 2. ...

  7. Vivado生成bitstream时报错[Opt 31-67] Problem: A LUT3 cell in the design is missing a connection on input pin I1, which is used by the LUT equation

    这个原因主要是因为有一个引脚没有用到,解决方法. 1.打开Schematic. 2.根据提示的模块去找,比如说我的报错. [Opt 31-67] Problem: A LUT3 cell in the ...

  8. UIPath之Excel操作

    你的选择是做或不做,但不做就永远不会有机会. 一. UIPath操作Excel的两组方法 1. App Integration > Excel   特点: 对Excel里的操作必须包含在Exec ...

  9. jmeter工具中vars与props命令的区别和使用

    话不多说直接干活!!!!! vars 和 props命令存在于"jsr223 预处理器"."BeanShell 预处理程序"."JSR223 后置处理 ...

  10. 【解决方案】MySQL5.7 百万数据迁移到 ElasticSearch7.x 的思考

    目录 前言 一.一次性全量 二.定时任务增量 三.强一致性问题 四.canal 框架 4.1基本原理 4.2安装使用(重点) 版本说明 4.3引入依赖(测试) 4.4代码示例(测试) 五.文章小结 前 ...