Junior — Middle
Ποιοι ενσωματωμένοι τύποι δεδομένων στο Go επιτρέπουν την εκτέλεση λειτουργιών σύγκρισης;
sobes.tech AI
Απάντηση από AI
Στη Go, οι λειτουργίες σύγκρισης υποστηρίζονται για τους ακόλουθους ενσωματωμένους τύπους δεδομένων:
- Αληθιές τιμές (
bool): μπορούν να συγκριθούν για ισότητα και ανισότητα. - Αριθμητικοί τύποι (
int,float32,float64,uintκ.λπ.): υποστηρίζουν όλες τις τυπικές λειτουργίες σύγκρισης (==,!=,<,>,<=,>=). - Strings (
string): συγκρίνονται λεξικογραφικά χρησιμοποιώντας τους τελεστές==,!=,<,>,<=,>=. - Δείκτες: συγκρίνονται για ισότητα και ανισότητα (αν δείχνουν στο ίδιο αντικείμενο ή
nil). - Διασυνδέσεις: συγκρίνονται για ισότητα και ανισότητα αν οι δυναμικοί τύποι και οι τιμές είναι συγκρίσιμοι.
- Πίνακες: συγκρίνονται στοιχείο προς στοιχείο αν τα στοιχεία είναι συγκρίσιμα.
Τύποι που δεν μπορούν να συγκριθούν άμεσα, όπως οι φέτες (slice), οι χάρτες (map), οι συναρτήσεις (func), δεν υποστηρίζουν λειτουργίες σύγκρισης, εκτός από τον έλεγχο για nil.
Παράδειγμα σύγκρισης strings και αριθμών:
package main
import "fmt"
func main() {
a := 10
b := 20
fmt.Println(a < b) // true
s1 := "μήλο"
s2 := "μπανάνα"
fmt.Println(s1 == s2) // false
}