ExpertiDict

Go · Intermediário · Inglês · Técnico

comparable

/ˈkɑm.pɚ.ə.bəl/constraint

Constraint predefinida satisfeita por tipos que aceitam == e !=, como números, strings, ponteiros e structs de campos comparáveis. É o requisito de chaves de map genérico.

Onde usar

Aparece em funções genéricas que comparam valores ou usam chaves em map[K]V. Slices, maps e funções não são comparáveis e não satisfazem a constraint.

Em código

func Indice[T comparable](xs []T, v T) int {
  for i, x := range xs {
    if x == v { return i }
  }
  return -1
}

Exemplos

The key type must be comparable.

O tipo da chave precisa ser comparable.

A slice is not comparable, so it can't be a map key.

Uma slice não é comparable, então não pode ser chave de map.

Cuidado

Interfaces satisfazem comparable desde o Go 1.20, mas a comparação pode dar panic em tempo de execução se o valor dinâmico não for comparável.

Sinônimos

comparável

Veja também

Todos os termos de Go