Sobes.tech
Junior — Middle

Jakie kategorie danych pozwalają na porównanie ich wartości między sobą?

sobes.tech AI

Odpowiedź od AI

W Go (Golang) wartości można porównywać między sobą, jeśli ich typy obsługują operację porównania. Do kategorii danych obsługujących porównanie należą:

  • Wartości logiczne (bool) — można je porównywać pod kątem równości i nierówności.
  • Typy liczbowe (int, float64, uint itd.) — obsługują wszystkie standardowe operacje porównania (==, !=, <, >, <=, >=).
  • Stringi (string) — są porównywane leksykograficznie.
  • Wskaźniki — są porównywane pod kątem równości i nierówności.
  • Interfejsy — są porównywane, jeśli ich wewnętrzne wartości są porównywalne.
  • Struktury i tablice — są porównywalne, jeśli wszystkie ich pola lub elementy są porównywalne.

Typy, które nie mogą być porównywane bezpośrednio, takie jak slices (slice), mapy (map), funkcje, wymagają specjalnych podejść do porównania.

Przykład porównania stringów i liczb:

package main
import "fmt"

func main() {
    a := 5
    b := 10
    fmt.Println(a < b) // true

    s1 := "jabłko"
    s2 := "banan"
    fmt.Println(s1 < s2) // true (kolejność leksykograficzna)
}