Type conversion (tip çevirmə) Go dilində müxtəlif məlumat tipləri arasında çevirmələr etmək üçün istifadə olunur. Go, statik tipli bir dildir, bu səbəbdən bir tipdən digərinə çevirmə etmək üçün müvafiq çevirmə operatorlarından istifadə etməlisiniz.
Go dilində tip çevirməsi bir dəyişənin bir tipdən digər tipə çevrilməsi üçün istifadə olunur. Çevirmə yalnız uyumlu tiplər arasında mümkündür. Tip çevirmə prosesində, konkret bir məlumat tipi digər bir tipə çevrilir, bu da müəyyən bir funksiyanı və ya əməliyyatı həyata keçirmək üçün lazım ola bilər.
Aşağıdakı misalda, int
tipində bir dəyişəni float64
tipinə çevirmək göstərilir:
package main
import "fmt"
func main() {
var i int = 42
var f float64 = float64(i) // int tipindən float64 tipinə çevirmə
fmt.Println(f) // 42.0
}
Burada, i
dəyişəni int
tipindədir və onu float64
tipinə çevirmək üçün float64(i)
ifadəsi istifadə olunur.
Bir dəyişəni string
tipinə çevirmək üçün string()
funksiyasından istifadə edilir:
package main
import "fmt"
func main() {
var i int = 123
var s string = string(i) // int tipindən string tipinə çevirmə
fmt.Println(s) // Əslində bu doğru nəticə verməyəcək, çünki bu ASCII kodunu alacaq.
}
Bu misalda, int
tipindəki dəyişəni string
tipinə çevirmək string(i)
istifadə edilir, amma burada i
dəyişəni ASCII kodu kimi təfsir olunur, bu səbəbdən nəticə gözlənilməz ola bilər.
Fərqli numeric tiplər arasında çevirmə (məsələn, int
və float64
arasında) float64
kimi daha geniş tipdən daha dar tiplərə çevrilərkən məlumat itkisi ola bilər.
package main
import "fmt"
func main() {
var f float64 = 3.14159
var i int = int(f) // float64 tipindən int tipinə çevirmə
fmt.Println(i) // 3
}
Bu misalda, float64
tipindəki dəyişəni int
tipinə çevirmək int(f)
istifadə edilir. Çevirmə prosesində ondalıklı hissə itirilir.
Dəyişənlərin və funksiyaların parametr tipləri arasında çevirmələr də edə bilərsiniz:
package main
import (
"fmt"
"strconv"
)
func main() {
var s string = "123"
var i int
var err error
i, err = strconv.Atoi(s) // string tipindən int tipinə çevirmə
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(i) // 123
}
Burada, strconv.Atoi
funksiyası string tipindəki dəyəri int
tipinə çevirmək üçün istifadə olunur.
Go dilində tip çevirmə, fərqli məlumat tipləri arasında çevirmələr edərək müxtəlif əməliyyatları həyata keçirmək üçün əhəmiyyətlidir. Çevirmə prosesində məlumat itkisini və potensial səhvləri nəzərə almaq vacibdir. Tip çevirməni düzgün istifadə edərək, proqramınızı daha effektiv və çevik hala gətirə bilərsiniz.