Practical Array Operations
Common Array Manipulation Techniques
Iterating Through Arrays
func iterateArray() {
fruits := [4]string{"apple", "banana", "cherry", "date"}
// Traditional for loop
for i := 0; i < len(fruits); i++ {
fmt.Println(fruits[i])
}
// Range-based iteration
for index, fruit := range fruits {
fmt.Printf("Index: %d, Fruit: %s\n", index, fruit)
}
}
Copying Arrays
func copyArray() {
original := [5]int{1, 2, 3, 4, 5}
var copied [5]int
// Manual copying
for i := 0; i < len(original); i++ {
copied[i] = original[i]
}
}
Searching and Filtering
Finding Elements
func findElement(arr [5]int, target int) int {
for index, value := range arr {
if value == target {
return index
}
}
return -1 // Not found
}
Sorting Arrays
Simple Sorting Technique
func sortArray() {
numbers := [5]int{42, 13, 7, 99, 23}
for i := 0; i < len(numbers)-1; i++ {
for j := 0; j < len(numbers)-i-1; j++ {
if numbers[j] > numbers[j+1] {
// Swap elements
numbers[j], numbers[j+1] = numbers[j+1], numbers[j]
}
}
}
}
Operation |
Description |
Example |
Filtering |
Select specific elements |
Remove even numbers |
Mapping |
Transform each element |
Double array values |
Reducing |
Compute single value |
Calculate sum |
Multi-dimensional Array Operations
func multiDimensionalOps() {
// 2D array manipulation
matrix := [3][3]int{
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
}
// Accessing and modifying elements
matrix[1][1] = 50
}
graph LR
A[Array Operations] --> B[Iteration]
A --> C[Searching]
A --> D[Sorting]
A --> E[Transformation]
Advanced Techniques
Parallel Processing
func parallelProcessing() {
data := [1000]int{}
// Using goroutines for parallel processing
go func() {
for i := range data {
data[i] = i * 2
}
}()
}
Error Handling in Array Operations
func safeArrayOperation(arr [5]int) {
defer func() {
if r := recover(); r != nil {
fmt.Println("Recovered from panic:", r)
}
}()
// Potential risky operation
_ = arr[10] // This will cause a panic
}
Best Practices
- Use range for safer iterations
- Prefer slices for dynamic collections
- Be mindful of array size limitations
- Implement error handling
LabEx Insight
At LabEx, we recommend mastering these practical array operations to write more efficient and robust Go code.