Text

Textos podem conter muitos caracteres e são às vezes chamados de strings.

Declaração

Entradas de texto são declaradas usando aspas:

a = 'hello world'        # declaração de texto inteligente
a = "hello world"        # declaração de texto bruto
a: Text = 'hello world'  # inteligente, opcionalmente verboso

Manipulando texto

Concatenação

No FatScript, você pode concatenar, ou juntar, dois textos usando o operador +. Essa operação conecta os dois textos em um. Por exemplo:

x1 = 'ab' + 'cd'  # Retorna 'abcd'

Subtração de texto

FatScript também suporta uma operação de subtração de texto usando o operador -. Essa operação remove uma substring especificada do texto. Por exemplo:

x2 = 'ab cd'
x2 - ' ' == 'abcd'  # Retorna true

No exemplo acima, o caractere de espaço ' ' é removido do texto original 'ab cd', resultando em 'abcd'.

Seleção de texto

A seleção permite que você acesse partes específicas de um texto usando índices. No FatScript, você pode usar índices positivos ou negativos. Os índices positivos começam do início do texto (0 é o primeiro caractere), e os índices negativos começam do final do texto (-1 é o último caractere).

para uma explicação detalhada sobre o sistema de indexação no FatScript, consulte a seção sobre acesso e seleção de itens em List

Quando apenas um índice é passado para a função de seleção, um único caractere do texto é selecionado. Quando dois índices são passados para a função, um intervalo de caracteres do texto é selecionado. Essa seleção é inclusiva, o que significa que inclui os caracteres nos índices inicial e final.

Assim como com as listas, acessar itens que estão fora dos índices válidos irá gerar um erro. Para seleções, não são gerados erros ao acessar índices fora dos limites; em vez disso, um texto vazio é retornado.

x3 = 'exemplo'
x3(1)     # 'x'
x3(2, 4)  # 'emp'
x3(..2)   # 'exe'

Caracteres especiais

Caracteres como aspas ' / " podem ser escapados com a barra invertida \.

'Rock\'n\'roll'
"Onde fica \"aqui\"?"

você só precisa escapar as aspas do mesmo tipo usadas como delimitador de texto

Outras sequências de escape suportadas são:

  • backspace \b
  • nova linha \n
  • retorno de carro \r
  • tabulação \t
  • octeto em representação base-8 \ooo
  • a própria barra invertida \\

Textos inteligentes

Quando declarado com aspas simples ', o modo inteligente é habilitado e a interpolação é realizada para qualquer código envolto em chaves {...}:

texto = 'mundo'
interpolado = 'olá {texto}'  # resulta em 'olá mundo'

o template é processado em uma camada com acesso ao escopo atual

Observe que o uso de novas linhas ou outros textos inteligentes dentro do template de interpolação não é suportado, mas você pode fazer chamadas de método, se precisar compor o resultado com algo mais complexo.

Você pode evitar a interpolação escapando o colchete de abertura:

escapado = 'olá \{texto}'  # resulta em 'olá {texto}'

Alternativamente, você pode evitar a interpolação usando textos brutos.

Textos brutos

Quando declarado com aspas duplas ", o modo de texto bruto é assumido e a interpolação é desativada.

Exemplo de modo inteligente vs. modo bruto:

'Sou inteligente: {interpolado}'  # usando o valor do exemplo anterior
Sou inteligente: olá mundo        # substituição ocorre

"Sou bruto: {interpolado}"  # colchetes são apenas caracteres comuns
Sou bruto: {interpolado}    # nenhuma interpolação ocorre

Operações com textos

  • == igual
  • != diferente
  • + soma (concatenar)
  • - subtração (remove substring)
  • < menor (alfanumérico)
  • <= menor ou igual (alfanumérico)
  • > maior (alfanumérico)
  • >= maior ou igual (alfanumérico)
  • & AND lógico (convertido para booleano)
  • | OR lógico (convertido para booleano)

comparações são implementadas através da função strcmp

Codificação

FatScript é projetado para operar com textos codificados em UTF-8 ou ASCII. Essa escolha de design reconhece a prevalência desses sistemas de codificação e otimiza a linguagem para ampla compatibilidade.

UTF-8 é um sistema de codificação de vários bytes capaz de representar qualquer caractere no padrão Unicode. Este esquema de codificação de caracteres universais usa de 8 a 32 bits para representar um caractere, permitindo a representação de uma vasta gama de símbolos de diversas línguas e sistemas de escrita. Notavelmente, os primeiros 128 caracteres (0-127) do UTF-8 se alinham precisamente com o conjunto ASCII, tornando qualquer texto ASCII uma string válida codificada em UTF-8.

No FatScript, o tipo de dados Text é uma sequência de caracteres Unicode, inerentemente codificada em UTF-8, portanto, operações como text.size, text(index) e text(1..4) irão contar, acessar ou fatiar corretamente o texto, independentemente da complexidade dos caracteres. Essas operações consideram um caractere UTF-8 multi-byte completo como uma única unidade, garantindo um comportamento correto e previsível.

Ao assumir a codificação UTF-8 para o texto, FatScript garante interoperabilidade perfeita com os padrões existentes, amplia sua aplicabilidade em várias línguas e scripts e melhora a experiência do usuário ao tratar textos como sequências logicamente contíguas de caracteres.

Veja também

results matching ""

    No results matching ""