In Go programming language, data types are crucial for declaring variables and defining functions. Understanding data types is fundamental for writing efficient and robust code. In this tutorial, we’ll delve into the various data types supported by Go, including basic types, composite types, and user-defined types, with detailed explanations and illustrative code examples.
Basic Data Types in Go
1. Numeric Types
Go supports various numeric types, including integers and floating-point numbers.
package main
import "fmt"
func main() {
var integer int = 42
var floatingPoint float64 = 3.14
fmt.Println("Integer:", integer)
fmt.Println("Floating point:", floatingPoint)
}
2. String Type
Strings in Go are sequences of bytes, commonly used for representing text.
package main
import "fmt"
func main() {
var message string = "Hello, Go!"
fmt.Println(message)
}
3. Boolean Type
Boolean data type represents true or false values.
package main
import "fmt"
func main() {
var isTrue bool = true
fmt.Println("Is true:", isTrue)
}
Composite Data Types
1. Arrays
Arrays in Go are fixed-size sequences of elements of the same type.
package main
import "fmt"
func main() {
var numbers [3]int = [3]int{1, 2, 3}
fmt.Println("Numbers array:", numbers)
}
2. Slices
Slices are dynamically-sized views into arrays.
package main
import "fmt"
func main() {
numbers := []int{1, 2, 3}
fmt.Println("Numbers slice:", numbers)
}
3. Maps
Maps represent unordered collections of key-value pairs.
package main
import "fmt"
func main() {
ages := map[string]int{
"Alice": 30,
"Bob": 25,
"Charlie": 35,
}
fmt.Println("Ages map:", ages)
}
User-Defined Data Types
1. Structs
Structs allow you to create composite data types by combining different types into a single entity.
package main
import "fmt"
type Person struct {
Name string
Age int
}
func main() {
person := Person{Name: "Alice", Age: 30}
fmt.Println("Person:", person)
}
2. Custom Types
You can define custom types based on existing types for better code clarity and semantic meaning.
package main
import "fmt"
type Celsius float64
func main() {
temperature := Celsius(25.5)
fmt.Println("Temperature:", temperature)
}
Conclusion
In this tutorial, we’ve covered the various data types supported by Go, including basic types like integers and strings, composite types like arrays, slices, and maps, as well as user-defined types such as structs and custom types. Understanding these data types is essential for writing clear, efficient, and maintainable Go code. Experiment with the provided examples to deepen your understanding and proficiency with Go data types.