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,uintitd.) — 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)
}