In Go, type conversion is the process of converting a variable from one data type to another. Since Go is a statically typed language, automatic type conversion (implicit conversion) is not supported. Instead, we must explicitly convert types when needed.
To convert a variable from one type to another, use the following syntax:
var newTypeVariable = targetType(originalVariable)
✅ Example: Converting an int
to float64
package main
import "fmt"
func main() {
var num int = 10
var floatNum float64 = float64(num) // Explicit conversion
fmt.Println("Integer:", num)
fmt.Println("Converted to Float:", floatNum)
}
✅ Example: Converting int
to float64
var x int = 42
var y float64 = float64(x) // Converts int to float
🔹 int
to float64
conversion works because floating-point numbers can store integer values.
🔹 Important: Converting from float64
to int
truncates the decimal part.
✅ Example:
var f float64 = 3.99
var i int = int(f) // Decimal part is removed
fmt.Println(i) // Output: 3
strconv.Itoa()
for Integer to Stringimport "strconv"
var num int = 123
var str string = strconv.Itoa(num) // Converts int to string
fmt.Println(str) // Output: "123"
🔹 Using strconv.Atoi()
(returns two values: int
and error
)
✅ Example:
import "strconv"
var str string = "456"
num, err := strconv.Atoi(str)
if err == nil {
fmt.Println(num) // Output: 456
}
✅ Example:
import "strconv"
var str string = "3.14"
num, err := strconv.ParseFloat(str, 64)
if err == nil {
fmt.Println(num) // Output: 3.14
}
🔹 A byte slice ([]byte
) can be converted to a string.
✅ Example:
var bytes = []byte{72, 101, 108, 108, 111} // ASCII values of "Hello"
var str string = string(bytes)
fmt.Println(str) // Output: "Hello"
✅ Example:
var str string = "Hello"
var bytes []byte = []byte(str)
fmt.Println(bytes) // Output: [72 101 108 108 111]
A rune
represents a Unicode character in Go.
✅ Example:
var r rune = 'G'
var str string = string(r)
fmt.Println(str) // Output: "G"
package main
import (
"fmt"
"strconv"
)
func main() {
var num int = 100
var floatNum float64 = float64(num) // int to float
var strNum string = strconv.Itoa(num) // int to string
fmt.Println("Integer to Float:", floatNum)
fmt.Println("Integer to String:", strNum)
var str string = "250"
intNum, _ := strconv.Atoi(str) // string to int
fmt.Println("String to Integer:", intNum)
var floatStr string = "45.67"
floatVal, _ := strconv.ParseFloat(floatStr, 64) // string to float
fmt.Println("String to Float:", floatVal)
}
✅ Go does not allow implicit type conversion – you must convert explicitly.
✅ Use strconv
package for string conversions.
✅ Integer to float is straightforward, but float to integer truncates decimals.
✅ String to integer or float requires strconv.Atoi()
or strconv.ParseFloat()
.
Go-তে টাইপ কনভার্সন হল এক ধরনের ডাটা টাইপকে অন্য টাইপে রূপান্তর করার প্রক্রিয়া। যেহেতু Go একটি স্ট্যাটিক্যালি টাইপড ভাষা, তাই স্বয়ংক্রিয় (implicit) টাইপ কনভার্সন সমর্থন করে না। পরিবর্তে, আমাদের টাইপ explicitly (স্পষ্টভাবে) পরিবর্তন করতে হবে।
Go-তে টাইপ পরিবর্তনের সাধারণ পদ্ধতি:
var নতুন_ভেরিয়েবল = টার্গেট_টাইপ(পুরানো_ভেরিয়েবল)
✅ উদাহরণ: int
থেকে float64
এ কনভার্সন
package main
import "fmt"
func main() {
var num int = 10
var floatNum float64 = float64(num) // টাইপ পরিবর্তন
fmt.Println("Integer:", num)
fmt.Println("Float:", floatNum)
}
✅ উদাহরণ:
var x int = 42
var y float64 = float64(x) // int থেকে float এ রূপান্তর
🔹 int
থেকে float64
কনভার্সন সম্ভব কারণ দশমিক সংখ্যা পূর্ণসংখ্যা সংরক্ষণ করতে পারে।
🔹 গুরুত্বপূর্ণ: float64
থেকে int
-এ রূপান্তর করলে দশমিক অংশ বাদ পড়ে।
✅ উদাহরণ:
var f float64 = 3.99
var i int = int(f) // দশমিক অংশ বাদ যাবে
fmt.Println(i) // আউটপুট: 3
strconv.Itoa()
ফাংশন ব্যবহার করে Integer থেকে Stringimport "strconv"
var num int = 123
var str string = strconv.Itoa(num) // int থেকে string
fmt.Println(str) // আউটপুট: "123"
🔹 strconv.Atoi()
ফাংশন ব্যবহার করা হয় (এটি দুটি মান ফেরত দেয়: int
এবং error
)
✅ উদাহরণ:
import "strconv"
var str string = "456"
num, err := strconv.Atoi(str)
if err == nil {
fmt.Println(num) // আউটপুট: 456
}
✅ উদাহরণ:
import "strconv"
var str string = "3.14"
num, err := strconv.ParseFloat(str, 64)
if err == nil {
fmt.Println(num) // আউটপুট: 3.14
}
🔹 Byte slice ([]byte
) কে স্ট্রিংয়ে রূপান্তর করা যায়।
✅ উদাহরণ:
var bytes = []byte{72, 101, 108, 108, 111} // ASCII মান ("Hello")
var str string = string(bytes)
fmt.Println(str) // আউটপুট: "Hello"
✅ উদাহরণ:
var str string = "Hello"
var bytes []byte = []byte(str)
fmt.Println(bytes) // আউটপুট: [72 101 108 108 111]
rune
Go-তে ইউনিকোড ক্যারেক্টার সংরক্ষণ করতে ব্যবহৃত হয়।
✅ উদাহরণ:
var r rune = 'G'
var str string = string(r)
fmt.Println(str) // আউটপুট: "G"
package main
import (
"fmt"
"strconv"
)
func main() {
var num int = 100
var floatNum float64 = float64(num) // int থেকে float
var strNum string = strconv.Itoa(num) // int থেকে string
fmt.Println("Integer to Float:", floatNum)
fmt.Println("Integer to String:", strNum)
var str string = "250"
intNum, _ := strconv.Atoi(str) // string থেকে int
fmt.Println("String to Integer:", intNum)
var floatStr string = "45.67"
floatVal, _ := strconv.ParseFloat(floatStr, 64) // string থেকে float
fmt.Println("String to Float:", floatVal)
}
✅ Go স্বয়ংক্রিয় টাইপ কনভার্সন করে না, একে explicitly (স্পষ্টভাবে) করতে হয়।
✅ String কনভার্সনের জন্য strconv
প্যাকেজ ব্যবহার করা হয়।
✅ Integer থেকে Float সহজেই পরিবর্তন করা যায়, কিন্তু Float থেকে Integer দশমিক অংশ বাদ দেয়।
✅ String থেকে Integer বা Float পরিবর্তনের জন্য strconv.Atoi()
বা strconv.ParseFloat()
ব্যবহার করা হয়।