Type Conversion in Golang

Learn via video courses
Topics Covered

Overview

Transforming one data type into another is commonly required. Golang's type conversion concept might seem straightforward to professionals, but if you are new to programming or the language, anything could be challenging to understand at first. This is most likely a result of how Golang handles type conversion differently. We shall discuss type casting, often known as a conversion, in the Go programming language` in this article.

What is Type Conversion in Golang?

Type Conversion in Golang is the process of converting a value of one type to a value of another type. Go is a statically-typed language, which means that types are determined at compile-time, rather than at runtime. Therefore, type conversions must be explicit and cannot be done implicitly.

Go has several built-in functions for type conversion, such as float64(x), int(x), string(x), etc. These functions take the value of x as an argument and return a value of the specified type.

Transform Your Career

Choose from our industry-leading programs designed for career success

NSDC Certified

Modern Software and AI Engineering Program

Master full-stack development with AI integration

12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
GoogleAmazonPaytm+1000 more
Go to Program
NSDC Certified

Modern Data Science and ML with specialisation in AI

Advanced data science techniques with AI specialization

12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
GoogleAmazonPaytm+1000 more
Go to Program
NSDC Certified

Advanced AIML with Specialisation in Agentic AI

Deep dive into AIML with focus on Agentic systems

12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
GoogleAmazonPaytm+1000 more
Go to Program
NSDC Certified

DevOps, Cloud & AI Platform Engineering

Build and manage AI-powered cloud infrastructure

12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
GoogleAmazonPaytm+1000 more
Go to Program
NSDC Certified

AI Engineering Advanced Certification by IIT-Roorkee

Premier AI engineering certification from IIT-Roorkee

3 MonthsDuration
AI-LedCurriculum
Career SupportSupport
Program highlights
Go to Program

General Syntax of Type Conversion in Golang

For generic typecasting, the syntax is quite straightforward. Simply convert that value using the name of the other type as a function.

What is the Need for Type Conversion?

The need for type conversion in Go arises when we need to perform operations or assign values of one type to variables of another type. Go is a statically typed language, which means that the type of a variable is determined at compile-time, and it cannot change at runtime. This can make it difficult to perform operations or assign values between different types of variables.

Type conversions are also used to ensure that values being passed to functions or methods match the expected data type.

Types of Type Conversion in Golang

There are two types of type conversion:

  1. Implicit Type Conversion
  2. Explicit Type Conversion

Implicit Type Conversion: Golang does not support implicit type conversion. You will encounter an error if you attempt to assign an int variable to a float variable.

Explicit Type Conversion: This Type Conversion in Golang requires you to explicitly specify the target data type. This is done by using the syntax <target_type>(value). For example, to convert an int value to a float64, you would use the syntax float64(x), where x is an int variable.

You can use type conversion to convert between basic types like int, float, string, bool, etc, and you can also convert between structs, arrays, and pointers to other types.

It's worth mentioning that the Go compiler will not allow you to convert between different types that are not compatible. For example, you can't convert a string to an int, we need to use a library.

Turn Learning into Career Growth

1200+Hiring Partners
89%Placement Rate
11,000+Placements
147%Avg Salary Increment
2.5XCareer Growth
₹23 LPAAvg Post-Scaler Salary
1200+Hiring Partners
89%Placement Rate
11,000+Placements
147%Avg Salary Increment
2.5XCareer Growth
₹23 LPAAvg Post-Scaler Salary

Usage

There are several situations where type conversion is commonly used in Go:

  • Assigning values: When assigning a value of one data type to a variable of another data type, an explicit type conversion may be required.
  • Function calls: When passing a value to a function or method that expects a specific data type, an explicit type conversion may be required.
  • Arithmetic operations: When performing mathematical operations on values of different data types, an explicit type conversion may be required. For example, when dividing an int by a float64, the int value must be converted to a float64.
  • Interface implementation: When a struct implements an interface, type conversion may be required to convert the struct to the interface type.
  • JSON encoding and decoding: When encoding or decoding JSON data, type conversion may be required to convert between JSON data types and Go data types.
  • Database interaction: When interacting with a database, type conversion may be required to convert between Go data types and database data types.

It's important to note that type conversion should be used with caution, as it can introduce errors if not done correctly. It's always a good practice to validate the correctness of the conversion using test cases.

Example

Int to Float Program:

Output:

Run the code!

Explanation of the code:

  • In this example, the variable x is of type int and is assigned a value of 5. We use explicit type conversion to convert the value of x to a float64 and assign it to a new variable y.
  • Then we print the value of y using the fmt. Printf function, which shows that y is equal to 5.0.

Another Example:

Float to Int Program:

Output:

Run the code!

Explanation of the code:

  • In this example, the variable x is of type float64 and is assigned a value of 5.5. We use explicit type conversion to convert the value of x to an int and assign it to a new variable y.
  • Then we print the value of y using the fmt.Printf function, which shows that y is equal to 5.

Example: Conversions between string and int

The strong library can be used to convert between string and integer values. The code for doing so is provided below:

Output:

Run the code!

Explanation of the above code:

This Go program imports the strconv package and in this specific example, the program declares a variable i of type int and assigns it the value of 42. Then it declares a variables of type string and assigns it the result of the strconv.Itoa(i) function call. The Itoa function stands for "integer to ASCII" and it converts an int value to a string value.

Compile Error on Implicit Type Conversion

If we try to run the below code, we will get the error because of Implicit Conversion:

Output:

Run the code!

Explanation of the above code:

This will result in a compile-time error because i is an int and s is a string, and they cannot be assigned to each other without an explicit type conversion.

Even if the datatypes are compatible, the Go language does not permit implicit type conversion. This is because the Go language includes a Strong Type System. In the Go programming language, we utilize explicit type conversion whenever we need to convert one type to another.

Conclusion

  • In this article, we learned that go is a statically-typed language, which means that types are determined at compile-time, rather than at runtime. Therefore, type conversions must be explicit and cannot be done implicitly.
  • Type-conversion has two types implicit and explicit. And Golang doesn't support implicit type conversion.
  • Type conversion ensures that values being passed to functions or methods match the expected data type, and it allows for mathematical operations and other operations to be performed between values of different types.
  • It's important to use type conversion with caution, as it can introduce errors if not done correctly. It's always a good practice to validate the correctness of the conversion using tests and assertions.
  • Overall, type conversion is an essential feature of Go that enables developers to effectively work with different data types and ensures that their code is safe, predictable, and maintainable.
Hiring Partners:
GoogleGoogleAmazonAmazonMicrosoftMicrosoftFlipkartFlipkartAdobeAdobe1200+ more