Como comparar valores em Go

Comparar valores é uma das operações mais comuns em qualquer linguagem de programação, e em Go não é diferente. Porém, a simplicidade da linguagem esconde algumas nuances importantes sobre como certos tipos podem ou não ser comparados diretamente.

Neste post, exploraremos os operadores de comparação em Go, suas limitações e alternativas.

Operadores de Comparação

De modo geral, Go oferece dois operadores para comparação direta de valores:

  • ==: Verifica se os valores dos dois operandos são iguais.
  • !=: Verifica se os valores dos dois operandos são diferentes.

Esses operadores funcionam para os tipos chamados de “comparáveis”, como por exemplo o boolean, int, float, tipos complexos, string, channels, arrays, structs e ponteiros.

Para os tipos numéricos (int, float e tipos complexos) também podemos utilizar >, <, <= e >=.

Leia mais »

O que é e como usar a nova constraint comparable

Desde a versão 1.18 do Golang, uma nova constraint está disponível para nos ajudar no dia a dia de trabalho.

Nesse post vamos explorar essa constraint para entender o que ela é e onde podemos utiliza-lá.

De forma bem simples, a constraint comparable é uma interface para todos os tipos onde podemos utilizar == ou != para compará-los, ou seja, podemos utilizá-la para ints, floats, booleans, strings, ponteiros, channels, structs onde todos os campos são comparáveis e arrays de tipos comparáveis.

Abaixo você pode ver um pequeno exemplo de sua utilização em uma função com generics.

Leia mais »