Skip to content
geeksforgeeks
  • Tutorials
    • Python
    • Java
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
    • Practice Coding Problems
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Data Types in Go
  • Go Keywords
  • Go Control Flow
  • Go Functions
  • GoLang Structures
  • GoLang Arrays
  • GoLang Strings
  • GoLang Pointers
  • GoLang Interface
  • GoLang Concurrency
Open In App
Next Article:
Slice Composite Literal in Go
Next article icon

Slices in Golang

Last Updated : 02 Mar, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

Slices in Go are a flexible and efficient way to represent arrays, and they are often used in place of arrays because of their dynamic size and added features. A slice is a reference to a portion of an array. It's a data structure that describes a portion of an array by specifying the starting index and the length of the portion. This allows you to work with a portion of an array as if it were an independent array. In Go language slice is more powerful, flexible, convenient than an array, and is a lightweight data structure. Slice is a variable-length sequence that stores elements of a similar type, you are not allowed to store different type of elements in the same slice. It is just like an array having an index value and length, but the size of the slice is resized they are not in fixed-size just like an array. Internally, slice and an array are connected with each other, a slice is a reference to an underlying array. It is allowed to store duplicate elements in the slice. 

The first index position in a slice is always 0 and the last one will be (length of slice - 1).

Here's an example that demonstrates how to create a slice in Go:

Go
package main  import "fmt"  func main() {     array := [5]int{1, 2, 3, 4, 5}     slice := array[1:4]      fmt.Println("Array: ", array)     fmt.Println("Slice: ", slice) } 

Output:

Array: [1 2 3 4 5] Slice: [2 3 4] 

In this example, the array is created with 5 elements, and the slice is created by specifying the starting index 1 and the length 4. The slice now contains the elements 2, 3, and 4 from the original array.

Slices are dynamic, which means that their size can change as you add or remove elements. Go provides several built-in functions that allow you to modify slices, such as append, copy, and delete.

Here's an example that demonstrates how to add elements to a slice in Go:

Go
package main  import "fmt"  func main() {     slice := []int{1, 2, 3}     slice = append(slice, 4, 5, 6)      fmt.Println("Slice: ", slice) } 

Output:

Slice: [1 2 3 4 5 6] 

In this example, the function append is used to add the elements 4, 5, 6 to the slice slice. The result is a new slice that contains the elements 1, 2, 3, 4, 5, 6.

Slices in Go are a powerful and flexible data structure that can be used to represent arrays. They provide a more dynamic and efficient way to work with arrays, and they are widely used in Go programs.

Declaration of Slice


A slice is declared just like an array, but it doesn't contain the size of the slice. So it can grow or shrink according to the requirement. 

Syntax:  

[]T or  []T{} or  []T{value1, value2, value3, ...value n}

Here, T is the type of the elements. For example: 

var my_slice[]int 

Components of Slice


A slice contains three components:

  • Pointer: The pointer is used to points to the first element of the array that is accessible through the slice. Here, it is not necessary that the pointed element is the first element of the array.
  • Length: The length is the total number of elements present in the array.
  • Capacity: The capacity represents the maximum size upto which it can expand.

Let us discuss all these components with the help of an example:

Example: 

Go
// Golang program to illustrate // the working of the slice components package main  import "fmt"  func main() {      // Creating an array     arr := [7]string{"This", "is", "the", "tutorial",                          "of", "Go", "language"}      // Display array     fmt.Println("Array:", arr)      // Creating a slice     myslice := arr[1:6]      // Display slice     fmt.Println("Slice:", myslice)      // Display length of the slice     fmt.Printf("Length of the slice: %d", len(myslice))      // Display the capacity of the slice     fmt.Printf("\nCapacity of the slice: %d", cap(myslice)) } 

Output: 

Array: [This is the tutorial of Go language] Slice: [is the tutorial of Go] Length of the slice: 5 Capacity of the slice: 6

Explanation: In the above example, we create a slice from the given array. Here the pointer of the slice pointed to index 1 because the lower bound of the slice is set to one so it starts accessing elements from index 1. The length of the slice is 5, which means the total number of elements present in the slice is 5 and the capacity of the slice 6 means it can store a maximum of 6 elements in it.
 


How to create and initialize a Slice?

In Go language, a slice can be created and initialized using the following ways:

  • Using slice literal: You can create a slice using the slice literal. The creation of slice literal is just like an array literal, but with one difference you are not allowed to specify the size of the slice in the square braces[]. As shown in the below example, the right-hand side of this expression is the slice literal.
var my_slice_1 = []string{"Geeks", "for", "Geeks"}

Note: Always remember when you create a slice using a string literal, then it first creates an array and after that return a slice reference to it.

Example:

Go
// Golang program to illustrate how // to create a slice using a slice // literal package main  import "fmt"  func main() {      // Creating a slice     // using the var keyword     var my_slice_1 = []string{"Geeks", "for", "Geeks"}      fmt.Println("My Slice 1:", my_slice_1)      // Creating a slice     //using shorthand declaration     my_slice_2 := []int{12, 45, 67, 56, 43, 34, 45}     fmt.Println("My Slice 2:", my_slice_2) } 

Output: 

My Slice 1: [Geeks for Geeks] My Slice 2: [12 45 67 56 43 34 45]
  • Using an Array: As we already know that the slice is the reference of the array so you can create a slice from the given array. For creating a slice from the given array first you need to specify the lower and upper bound, which means slice can take elements from the array starting from the lower bound to the upper bound. It does not include the elements above from the upper bound. As shown in the below example:

Syntax: 

array_name[low:high]

This syntax will return a new slice.

Note: The default value of the lower bound is 0 and the default value of the upper bound is the total number of the elements present in the given array.

Example:

Go
// Golang program to illustrate how to // create slices from the array package main  import "fmt"  func main() {      // Creating an array     arr := [4]string{"Geeks", "for", "Geeks", "GFG"}      // Creating slices from the given array     var my_slice_1 = arr[1:2]     my_slice_2 := arr[0:]     my_slice_3 := arr[:2]     my_slice_4 := arr[:]      // Display the result     fmt.Println("My Array: ", arr)     fmt.Println("My Slice 1: ", my_slice_1)     fmt.Println("My Slice 2: ", my_slice_2)     fmt.Println("My Slice 3: ", my_slice_3)     fmt.Println("My Slice 4: ", my_slice_4) } 

Output:

My Array:  [Geeks for Geeks GFG] My Slice 1:  [for] My Slice 2:  [Geeks for Geeks GFG] My Slice 3:  [Geeks for] My Slice 4:  [Geeks for Geeks GFG]
  • Using already Existing Slice: It is also be allowed to create a slice from the given slice. For creating a slice from the given slice first you need to specify the lower and upper bound, which means slice can take elements from the given slice starting from the lower bound to the upper bound. It does not include the elements above from the upper bound. As shown in the below example:
    Syntax: 
slice_name[low:high]

This syntax will return a new slice.

Note: The default value of the lower bound is 0 and the default value of the upper bound is the total number of the elements present in the given slice. 

Example:

Go
// Golang program to illustrate how to // create slices from the slice package main  import "fmt"  func main() {      // Creating s slice     oRignAl_slice := []int{90, 60, 40, 50,         34, 49, 30}      // Creating slices from the given slice     var my_slice_1 = oRignAl_slice[1:5]     my_slice_2 := oRignAl_slice[0:]     my_slice_3 := oRignAl_slice[:6]     my_slice_4 := oRignAl_slice[:]     my_slice_5 := my_slice_3[2:4]      // Display the result     fmt.Println("Original Slice:", oRignAl_slice)     fmt.Println("New Slice 1:", my_slice_1)     fmt.Println("New Slice 2:", my_slice_2)     fmt.Println("New Slice 3:", my_slice_3)     fmt.Println("New Slice 4:", my_slice_4)     fmt.Println("New Slice 5:", my_slice_5) } 

Output: 

Original Slice: [90 60 40 50 34 49 30] New Slice 1: [60 40 50 34] New Slice 2: [90 60 40 50 34 49 30] New Slice 3: [90 60 40 50 34 49] New Slice 4: [90 60 40 50 34 49 30] New Slice 5: [40 50]

Using make() function: You can also create a slice using the make() function which is provided by the go library. This function takes three parameters, i.e, type, length, and capacity. Here, capacity value is optional. It assigns an underlying array with a size that is equal to the given capacity and returns a slice which refers to the underlying array. Generally, make() function is used to create an empty slice. Here, empty slices are those slices that contain an empty array reference.

Syntax: 

func make([]T, len, cap) []T

Example:

Go
// Go program to illustrate how to create slices // Using make function package main  import "fmt"  func main() {      // Creating an array of size 7     // and slice this array  till 4     // and return the reference of the slice     // Using make function     var my_slice_1 = make([]int, 4, 7)     fmt.Printf("Slice 1 = %v, \nlength = %d, \ncapacity = %d\n",                    my_slice_1, len(my_slice_1), cap(my_slice_1))      // Creating another array of size 7     // and return the reference of the slice     // Using make function     var my_slice_2 = make([]int, 7)     fmt.Printf("Slice 2 = %v, \nlength = %d, \ncapacity = %d\n",                    my_slice_2, len(my_slice_2), cap(my_slice_2))      } 

Output:

Slice 1 = [0 0 0 0],  length = 4,  capacity = 7 Slice 2 = [0 0 0 0 0 0 0],  length = 7,  capacity = 7

How to iterate over a slice?

You can iterate over slice using the following ways: 

  • Using for loop: It is the simplest way to iterate slice as shown in the below example:
    Example:
Go
// Golang program to illustrate the // iterating over a slice using // for loop package main  import "fmt"  func main() {      // Creating a slice     myslice := []string{"This", "is", "the", "tutorial",         "of", "Go", "language"}      // Iterate using for loop     for e := 0; e < len(myslice); e++ {         fmt.Println(myslice[e])     } } 

Output: 

This is the tutorial of Go language

Using range in for loop: It is allowed to iterate over a slice using range in the for loop. Using range in the for loop, you can get the index and the element value as shown in the example:

Example:

Go
// Golang program to illustrate the iterating // over a slice using range in for loop package main  import "fmt"  func main() {      // Creating a slice     myslice := []string{"This", "is", "the", "tutorial",                                  "of", "Go", "language"}      // Iterate slice     // using range in for loop     for index, ele := range myslice {         fmt.Printf("Index = %d and element = %s\n", index+3, ele)     } } 

Output: 

Index = 3 and element = This Index = 4 and element = is Index = 5 and element = the Index = 6 and element = tutorial Index = 7 and element = of Index = 8 and element = Go Index = 9 and element = language

Using a blank identifier in for loop: In the range for loop, if you don't want to get the index value of the elements then you can use blank space(_) in place of index variable as shown in the below example:
Example:

Go
// Golang program to illustrate the iterating over // a slice using range in for loop without an index package main  import "fmt"  func main() {      // Creating a slice     myslice := []string{"This", "is", "the",         "tutorial", "of", "Go", "language"}      // Iterate slice     // using range in for loop     // without index     for _, ele := range myslice {         fmt.Printf("Element = %s\n", ele)     } } 

Output: 

Element = This Element = is Element = the Element = tutorial Element = of Element = Go Element = language

Important points about Slice

Zero value slice: In Go language, you are allowed to create a nil slice that does not contain any element in it. So the capacity and the length of this slice is 0. Nil slice does not contain an array reference as shown in the below example:

Example:

Go
// Go program to illustrate a zero value slice package main  import "fmt"  func main() {      // Creating a zero value slice     var myslice []string     fmt.Printf("Length = %d\n", len(myslice))     fmt.Printf("Capacity = %d ", cap(myslice))  } 

Output:

Length = 0 Capacity = 0

Modifying Slice: As we already know that slice is a reference type it can refer an underlying array. So if we change some elements in the slice, then the changes should also take place in the referenced array. Or in other words, if you made any changes in the slice, then it will also reflect in the array as shown in the below example:

Example:

Go
// Golang program to illustrate // how to modify the slice package main  import "fmt"  func main() {      // Creating a zero value slice     arr := [6]int{55, 66, 77, 88, 99, 22}     slc := arr[0:4]      // Before modifying      fmt.Println("Original_Array: ", arr)     fmt.Println("Original_Slice: ", slc)      // After modification     slc[0] = 100     slc[1] = 1000     slc[2] = 1000      fmt.Println("\nNew_Array: ", arr)     fmt.Println("New_Slice: ", slc) } 

Output:

Original_Array:  [55 66 77 88 99 22] Original_Slice:  [55 66 77 88]  New_Array:  [100 1000 1000 88 99 22] New_Slice:  [100 1000 1000 88]

Comparison of Slice: In Slice, you can only use == operator to check the given slice is nill or not. If you try to compare two slices with the help of == operator then it will give you an error as shown in the below example:

Example:

Go
// Golang program to check if // the slice is nil or not package main  import "fmt"  func main() {      // creating slices     s1 := []int{12, 34, 56}     var s2 []int      // If you try to run this commented     // code compiler will give an error     /*s3:= []int{23, 45, 66}       fmt.Println(s1==s3)     */      // Checking if the given slice is nil or not     fmt.Println(s1 == nil)     fmt.Println(s2 == nil) } 

Output: 

false true

Note: If you want to compare two slices, then use range for loop to match each element or you can use DeepEqual function. 

Multi-Dimensional Slice: Multi-dimensional slice are just like the multidimensional array, except that slice does not contain the size. 

Example:

Go
// Go program to illustrate the multi-dimensional slice package main  import "fmt"  func main() {      // Creating multi-dimensional slice     s1 := [][]int{{12, 34},         {56, 47},         {29, 40},         {46, 78},     }      // Accessing multi-dimensional slice     fmt.Println("Slice 1 : ", s1)      // Creating multi-dimensional slice     s2 := [][]string{         []string{"Geeks", "for"},         []string{"Geeks", "GFG"},         []string{"gfg", "geek"},     }      // Accessing multi-dimensional slice     fmt.Println("Slice 2 : ", s2)  } 

Output: 

Slice 1 :  [[12 34] [56 47] [29 40] [46 78]] Slice 2 :  [[Geeks for] [Geeks GFG] [gfg geek]]

Sorting of Slice: In Go language, you are allowed to sort the elements present in the slice. The standard library of Go language provides the sort package which contains different types of sorting methods for sorting the slice of ints, float64s, and strings. These functions always sort the elements available is slice in ascending order.

Example:

Go
// Go program to illustrate how to sort // the elements present in the slice package main  import (     "fmt"     "sort" )  func main() {      // Creating Slice     slc1 := []string{"Python", "Java", "C#", "Go", "Ruby"}     slc2 := []int{45, 67, 23, 90, 33, 21, 56, 78, 89}      fmt.Println("Before sorting:")     fmt.Println("Slice 1: ", slc1)     fmt.Println("Slice 2: ", slc2)      // Performing sort operation on the     // slice using sort function     sort.Strings(slc1)     sort.Ints(slc2)      fmt.Println("\nAfter sorting:")     fmt.Println("Slice 1: ", slc1)     fmt.Println("Slice 2: ", slc2)  } 

Output: 

Before sorting: Slice 1:  [Python Java C# Go Ruby] Slice 2:  [45 67 23 90 33 21 56 78 89]  After sorting: Slice 1:  [C# Go Java Python Ruby] Slice 2:  [21 23 33 45 56 67 78 89 90]

Next Article
Slice Composite Literal in Go

A

ankita_saini
Improve
Article Tags :
  • Go Language
  • Golang
  • Golang-Slices

Similar Reads

    Go Tutorial
    Go or you say Golang is a procedural and statically typed programming language having the syntax similar to C programming language. It was developed in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson at Google but launched in 2009 as an open-source programming language and mainly used in Google
    2 min read

    Overview

    Go Programming Language (Introduction)
    Go is a procedural programming language. It was developed in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson at Google but launched in 2009 as an open-source programming language. Programs are assembled by using packages, for efficient management of dependencies. This language also supports env
    11 min read
    How to Install Go on Windows?
    Prerequisite: Introduction to Go Programming Language Before, we start with the process of Installing Golang on our System. We must have first-hand knowledge of What the Go Language is and what it actually does? Go is an open-source and statically typed programming language developed in 2007 by Robe
    3 min read
    How to Install Golang on MacOS?
    Before, we start with the process of Installing Golang on our System. We must have first-hand knowledge of What the Go Language is and what it actually does? Go is an open-source and statically typed programming language developed in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson at Google but
    4 min read
    Hello World in Golang
    Hello, World! is the first basic program in any programming language. Let’s write the first program in the Go Language using the following steps:First of all open Go compiler. In Go language, the program is saved with .go extension and it is a UTF-8 text file.Now, first add the package main in your
    3 min read

    Fundamentals

    Identifiers in Go Language
    In programming languages, identifiers are used for identification purposes. In other words, identifiers are the user-defined names of the program components. In the Go language, an identifier can be a variable name, function name, constant, statement label, package name, or type. Example: package ma
    3 min read
    Go Keywords
    Keywords or Reserved words are the words in a language that are used for some internal process or represent some predefined actions. These words are therefore not allowed to use as an identifier. Doing this will result in a compile-time error. Example: C // Go program to illustrate the // use of key
    2 min read
    Data Types in Go
    Data types specify the type of data that a valid Go variable can hold. In Go language, the type is divided into four categories which are as follows: Basic type: Numbers, strings, and booleans come under this category.Aggregate type: Array and structs come under this category.Reference type: Pointer
    7 min read
    Go Variables
    A typical program uses various values that may change during its execution. For Example, a program that performs some operations on the values entered by the user. The values entered by one user may differ from those entered by another user. Hence this makes it necessary to use variables as another
    9 min read
    Constants- Go Language
    As the name CONSTANTS suggests, it means fixed. In programming languages also it is same i.e., once the value of constant is defined, it cannot be modified further. There can be any basic data type of constants like an integer constant, a floating constant, a character constant, or a string literal.
    6 min read
    Go Operators
    Operators are the foundation of any programming language. Thus the functionality of the Go language is incomplete without the use of operators. Operators allow us to perform different kinds of operations on operands. In the Go language, operators Can be categorized based on their different functiona
    9 min read

    Control Statements

    Go Decision Making (if, if-else, Nested-if, if-else-if)
    Decision making in programming is similar to decision making in real life. In decision making, a piece of code is executed when the given condition is fulfilled. Sometimes these are also termed as the Control flow statements. Golang uses control statements to control the flow of execution of the pro
    5 min read
    Loops in Go Language
    Go language contains only a single loop that is for-loop. A for loop is a repetition control structure that allows us to write a loop that is executed a specific number of times. In Go language, this for loop can be used in the different forms and the forms are: 1. As simple for loop It is similar t
    5 min read
    Switch Statement in Go
    In Go, a switch statement is a multiway branch statement that efficiently directs execution based on the value (or type) of an expression. There are two main types of switch statements in Go:Expression SwitchType SwitchExamplepackage mainimport "fmt"func main() { day := 4 switch day { case 1: fmt.Pr
    2 min read

    Functions & Methods

    Functions in Go Language
    In Go, functions are blocks of code that perform specific tasks, which can be reused throughout the program to save memory, improve readability, and save time. Functions may or may not return a value to the caller.Example:Gopackage main import "fmt" // multiply() multiplies two integers and returns
    3 min read
    Variadic Functions in Go
    Variadic functions in Go allow you to pass a variable number of arguments to a function. This feature is useful when you don’t know beforehand how many arguments you will pass. A variadic function accepts multiple arguments of the same type and can be called with any number of arguments, including n
    3 min read
    Anonymous function in Go Language
    An anonymous function is a function that doesn’t have a name. It is useful when you want to create an inline function. In Go, an anonymous function can also form a closure. An anonymous function is also known as a function literal.ExampleGopackage main import "fmt" func main() { // Anonymous functio
    2 min read
    main and init function in Golang
    The Go language reserve two functions for special purpose and the functions are main() and init() function.main() functionIn Go language, the main package is a special package which is used with the programs that are executable and this package contains main() function. The main() function is a spec
    2 min read
    What is Blank Identifier(underscore) in Golang?
    _(underscore) in Golang is known as the Blank Identifier. Identifiers are the user-defined name of the program components used for the identification purpose. Golang has a special feature to define and use the unused variable using Blank Identifier. Unused variables are those variables that are defi
    3 min read
    Defer Keyword in Golang
    In Go language, defer statements delay the execution of the function or method or an anonymous method until the nearby functions returns. In other words, defer function or method call arguments evaluate instantly, but they don't execute until the nearby functions returns. You can create a deferred m
    3 min read
    Methods in Golang
    Go methods are like functions but with a key difference: they have a receiver argument, which allows access to the receiver's properties. The receiver can be a struct or non-struct type, but both must be in the same package. Methods cannot be created for types defined in other packages, including bu
    3 min read

    Structure

    Structures in Golang
    A structure or struct in Golang is a user-defined type that allows to group/combine items of possibly different types into a single type. Any real-world entity which has some set of properties/fields can be represented as a struct. This concept is generally compared with the classes in object-orient
    7 min read
    Nested Structure in Golang
    A structure or struct in Golang is a user-defined type, which allows us to create a group of elements of different types into a single unit. Any real-world entity which has some set of properties or fields can be represented as a struct. Go language allows nested structure. A structure which is the
    3 min read
    Anonymous Structure and Field in Golang
    In Golang, structures (or structs) allow us to group elements of various types into a single unit, which is useful for modeling real-world entities. Anonymous structures are unnamed, temporary structures used for a one-time purpose, while anonymous fields allow embedding fields without names.Example
    3 min read

    Arrays

    Arrays in Go
    Arrays in Golang or Go programming language is much similar to other programming languages. In the program, sometimes we need to store a collection of data of the same type, like a list of student marks. Such type of collection is stored in a program using an Array. An array is a fixed-length sequen
    7 min read
    How to Copy an Array into Another Array in Golang?
    In Go, an array is a fixed-length sequence that holds elements of a specific type. Unlike slices, arrays have a constant size, which is determined when the array is declared. Copying one array to another is straightforward but requires that both arrays have the same length and type.Examplepackage ma
    3 min read
    How to pass an Array to a Function in Golang?
    In Go, arrays are used to store a fixed-length collection of data of the same type. To manage this data effectively, you may often need to pass arrays to functions. In this article we will learn "How to pass an Array to a Function in Golang".Example:Gopackage main import "fmt" // Function to calcula
    2 min read

    Slices

    Slices in Golang
    Slices in Go are a flexible and efficient way to represent arrays, and they are often used in place of arrays because of their dynamic size and added features. A slice is a reference to a portion of an array. It's a data structure that describes a portion of an array by specifying the starting index
    14 min read
    Slice Composite Literal in Go
    There are two terms i.e. Slice and Composite Literal. Slice is a composite data type similar to an array which is used to hold the elements of the same data type. The main difference between array and slice is that slice can vary in size dynamically but not an array. Composite literals are used to c
    3 min read
    How to sort a slice of ints in Golang?
    In Go, slices provide a flexible way to manage sequences of elements. To sort a slice of ints, the sort package offers a few straightforward functions. In this article we will learn How to Sort a Slice of Ints in Golang.ExampleGopackage main import ( "fmt" "sort" ) func main() { intSlice := []int{42
    2 min read
    How to trim a slice of bytes in Golang?
    In Go language slice is more powerful, flexible, convenient than an array, and is a lightweight data structure. The slice is a variable-length sequence which stores elements of a similar type, you are not allowed to store different type of elements in the same slice. In the Go slice of bytes, you ar
    3 min read
    How to split a slice of bytes in Golang?
    In Golang, you can split a slice of bytes into multiple parts using the bytes.Split function. This is useful when dealing with data like encoded strings, file contents, or byte streams that must be divided by a specific delimiter.Examplepackage mainimport ( "bytes" "fmt")func main() { // Initial byt
    3 min read

    Strings

    Strings in Golang
    In the Go language, strings are different from other languages like Java, C++, Python, etc. It is a sequence of variable-width characters where every character is represented by one or more bytes using UTF-8 Encoding. In other words, strings are the immutable chain of arbitrary bytes(including bytes
    7 min read
    How to Trim a String in Golang?
    In Go, strings are UTF-8 encoded sequences of variable-width characters, unlike some other languages like Java, python and C++. Go provides several functions within the strings package to trim characters from strings.In this article we will learn how to Trim a String in Golang.Examples := "@@Hello,
    2 min read
    How to Split a String in Golang?
    In Go language, strings differ from other languages like Java, C++, and Python. A string in Go is a sequence of variable-width characters, with each character represented by one or more bytes using UTF-8 encoding. In Go, you can split a string into a slice using several functions provided in the str
    3 min read
    Different ways to compare Strings in Golang
    In Go, strings are immutable sequences of bytes encoded in UTF-8. You can compare them using comparison operators or the strings.Compare function. In this article,we will learn different ways to compare Strings in Golang.Examplepackage main import ( "fmt" "strings" ) func main() { s1 := "Hello" s2 :
    2 min read

    Pointers

    Pointers in Golang
    Pointers in Go programming language or Golang is a variable that is used to store the memory address of another variable. Pointers in Golang is also termed as the special variables. The variables are used to store some data at a particular memory address in the system. The memory address is always f
    8 min read
    Passing Pointers to a Function in Go
    Prerequisite: Pointers in Go Pointers in Go programming language or Golang is a variable which is used to store the memory address of another variable. You can also pass the pointers to the function like the variables. There are two ways to do this as follows: Create a pointer and simply pass it to
    3 min read
    Pointer to a Struct in Golang
    In Go, structs are used to create custom data types that group different fields together. When working with structs, using pointers can be especially beneficial for managing memory efficiently and for avoiding unnecessary copying of data. A pointer to a struct allows you to directly reference and mo
    3 min read
    Go Pointer to Pointer (Double Pointer)
    Prerequisite: Pointers in Go Pointers in Go programming language or Golang is a variable which is used to store the memory address of another variable. A pointer is a special variable so it can point to a variable of any type even to a pointer. Basically, this looks like a chain of pointers. When we
    4 min read
    Comparing Pointers in Golang
    Pointers in Go programming language or Golang is a variable which is used to store the memory address of another variable. Pointers in Golang are also termed as the special variables. The variables are used to store some data at a particular memory address in the system. The memory address is always
    3 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences