Tcl - Tipos de Dados

O tipo de dados primitivo de Tcl é string e freqüentemente podemos encontrar aspas em Tcl como linguagem apenas de string. Esses tipos de dados primitivos, por sua vez, criam tipos de dados compostos para lista e array associativo. No Tcl, os tipos de dados podem representar não apenas os objetos Tcl simples, mas também podem representar objetos complexos, como alças, objetos gráficos (principalmente widgets) e canais de E / S. Vejamos os detalhes sobre cada um dos itens acima.

Objetos Tcl Simples

Em Tcl, seja um número inteiro, booleano, número de ponto flutuante ou uma string. Quando você deseja usar uma variável, pode atribuir um valor diretamente a ela, não há etapa de declaração em Tcl. Pode haver representações internas para esses diferentes tipos de objetos. Ele pode transformar um tipo de dados em outro quando necessário. A sintaxe para atribuir valor à variável é a seguinte -

#!/usr/bin/tclsh

set myVariable 18
puts $myVariable

Quando o código acima é executado, ele produz o seguinte resultado -

18

A instrução acima criará um nome de variável myVariable e o armazenará como uma string, embora não tenhamos usado aspas duplas. Agora, se tentarmos fazer uma aritmética na variável, ela será automaticamente transformada em um inteiro. Um exemplo simples é mostrado abaixo -

#!/usr/bin/tclsh

set myVariable 18
puts [expr $myVariable + 6 + 9]

Quando o código acima é executado, ele produz o seguinte resultado -

33

Uma coisa importante a observar é que essas variáveis ​​não têm nenhum valor padrão e devem receber valores atribuídos antes de serem usadas.

Se tentarmos imprimir usando puts, o número será transformado na string apropriada. Ter duas representações, interna e externa, ajuda o Tcl a criar estruturas de dados complexas facilmente em comparação com outras linguagens. Além disso, o Tcl é mais eficiente devido à sua natureza de objeto dinâmico.

Representações de String

Ao contrário de outras línguas, em Tcl, você não precisa incluir aspas duplas quando é apenas uma palavra. Um exemplo pode ser -

#!/usr/bin/tclsh

set myVariable hello
puts $myVariable

Quando o código acima é executado, ele produz o seguinte resultado -

hello

Quando queremos representar várias strings, podemos usar aspas duplas ou chaves. É mostrado abaixo -

#!/usr/bin/tclsh

set myVariable "hello world"
puts $myVariable
set myVariable {hello world}
puts $myVariable

Quando o código acima é executado, ele produz o seguinte resultado -

hello world
hello world

Lista

A lista nada mais é do que um grupo de elementos. Um grupo de palavras usando aspas duplas ou chaves pode ser usado para representar uma lista simples. Uma lista simples é mostrada abaixo -

#!/usr/bin/tclsh

set myVariable {red green blue}
puts [lindex $myVariable 2]
set myVariable "red green blue"
puts [lindex $myVariable 1]

Quando o código acima é executado, ele produz o seguinte resultado -

blue
green

Matriz Associativa

As matrizes associativas têm um índice (chave) que não é necessariamente um número inteiro. Geralmente é uma string que atua como pares de valores-chave. Um exemplo simples é mostrado abaixo -

#!/usr/bin/tclsh

set  marks(english) 80
puts $marks(english)
set  marks(mathematics) 90
puts $marks(mathematics)

Quando o código acima é executado, ele produz o seguinte resultado -

80
90

Alças

As alças Tcl são comumente usadas para representar arquivos e objetos gráficos. Isso pode incluir identificadores para solicitações de rede e também outros canais como comunicação de porta serial, soquetes ou dispositivos de E / S. A seguir está um exemplo em que um identificador de arquivo é criado.

set myfile [open "filename" r]

Você verá mais detalhes sobre os arquivos no capítulo de E / S do arquivo Tcl .