Tipo de dados TS: de C ++ / Java / Python a TS para observar tuplas - os prós e contras das tuplas

Em uma linguagem fortemente tipada, como C ++ e Java, o Array, List e Set comumente usados ​​podem ser apenas um tipo na coleção (você pode revisar: " Falando sobre a estrutura de dados Java - análise da implementação subjacente e considerações do aplicativo ).

dados int [] = new int [3] 
List <> pessoa = new ArrayList <> (); 
Definir <Integer> test = new TreeSet <> ();

Se precisarmos de uma coleção de tamanho fixo de diferentes tipos de valores, precisamos usar tuplas

Introdução a tuplas C ++

Tuple é um contêiner poderoso que permite armazenar vários tipos diferentes de dados e é uma generalização de par. Também pode ser utilizado como uma estrutura geral, sem a necessidade de criar uma estrutura e obter as características da estrutura, podendo em alguns casos substituir a estrutura para tornar o programa mais conciso e intuitivo. Em teoria, std :: tuple pode ter um número infinito de variáveis ​​de membro de qualquer tipo, e std :: pair pode ter apenas 2 membros, então quando você precisa salvar 3 ou mais dados, você precisa usar tuplas de tupla (tupla (elemento Grupo) passou a ser citado em c ++ 11.).

std :: tuple <T1, T2, TN> t1; // Cria um objeto de tupla vazio (usando a construção padrão), os elementos correspondentes são tipos T1 e T2 ... Tn, inicializado pelo valor 
std :: tuple <T1 , T2, TN> t2 (v1, v2, ... TN); // Cria um objeto tupla, seus dois elementos são T1 e T2 ... tipo Tn; Para obter o valor do elemento, você precisa passar o membro da tupla get <Ith> (obj) para obtê-lo (Ith refere-se a obter o número de elementos na tupla, consulte os exemplos específicos abaixo). 
std :: tuple <T1 &> t3 (ref &); // O tipo de elemento da tupla pode ser uma referência 
std :: make_tuple (v1, v2); // Como um par, um objeto de tupla também pode ser criado através de make_tuple

Os objetos na tupla podem ser de qualquer tipo diferente e ter qualquer comprimento

Java Tuple

Tupla, que é um único objeto no qual um conjunto de objetos é diretamente empacotado e armazenado. Este objeto recipiente permite que os elementos nele sejam lidos. Mas não é permitido armazenar novos objetos nele. (Este conceito também é chamado de transferência de dados Objeto ou mensageiro)

tupla python

A lista de tipos de dados coletivos e tupla do Python são muito semelhantes, a diferença é:

A tupla é definida por parênteses (), e o conteúdo do elemento não pode ser editado após a definição (ou seja, imutável), enquanto a lista é definida por colchetes [] e seu conteúdo de elemento pode ser editado (ou seja, alterável). As ações de edição incluem excluir pop () e anexar até o final anexar (), inserir inserir ().

list1 = ['cong', 'rick', 'long'] // list 
tupe1 = ('Jan', 'Feb', 'Mar') // tupla, os elementos da tupla não podem ser modificados, não podem ser adicionados ou excluídos . 
tupeformList = tuple (lista1)

A natureza das tuplas em python é semelhante a java

Tuplas, como listas, podem ser usadas para armazenamento de dados e contêm vários dados;

Mas a diferença com a lista é que a lista só pode armazenar o mesmo tipo de dados, mas a tupla é diferente. Ela pode armazenar diferentes tipos de dados, como armazenamento int, string, lista etc. ao mesmo tempo, e pode ser expandida indefinidamente de acordo com as necessidades.

Tupla TypeScript

TypeScript injeta tipagem forte em JavaScript, tornando o JavaScript mais parecido com Java, como:

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

As matrizes de JavaScript podem armazenar qualquer tipo. Mas o TypeScript se torna uma tupla. Na verdade, se você não entende o conceito de tuplas, ainda pode usá-lo. Basta especificar o tipo.

let myTuple: [número, string, booleano] = [1, 'Poplar', true];

Para elementos fora dos limites, seu tipo será limitado ao tipo de união de cada tipo na tupla

As tuplas do TypeScript são herdadas de linguagens de programação funcionais (como F #) - uma família.

Artigo de referência:

Uso básico da tupla C ++ (resumo)   https://blog.csdn.net/sevenjoin/java/article/details/88420885

Use tupla em C ++  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


Acho que você gosta

Origin blog.51cto.com/zhoulujun/2535581
Recomendado
Clasificación