DEV Community

Cover image for Pass by Value
Burak Osman Yaldız
Burak Osman Yaldız

Posted on • Updated on


Pass by Value

In this section We Will Discuss What Does Mean "Pass by Value"
We have 2 Type of Values

Pointer Wrapper Values

  • Map
  • Slices
  • Functions

Non-Pointer Values

  • Strings
  • Int
  • Floats
  • Booleans
  • Arrays
  • Stuctures

For non-pointers, we need to redefine separately, for example

Whenever we try to change it with a function parameter, a variable copy of a new parameter is created in the computer memory for that function, so it does not change even if we try to change the value of the variable in our next codes. due to scope range

package main

import "fmt"

func changevalue(i int) {
    i = 20

func main() {
    i := 5

    fmt.Println("Value:", i) // Value: 5
Enter fullscreen mode Exit fullscreen mode

If you ask how this is for the pointer wrapper value, they update the memory address directly instead of creating a copy for the variable.

package main

import "fmt"

func changevalue(y map[string]float64) {
    y["baklava"] = 15.5

func main() {

    menu := map[string]float64{
        "pie":       35.6,
        "ice cream": 20.4,

    fmt.Println(menu) // map[ice cream:20.4 pie:35.6]
    fmt.Println(menu) // map[baklava:15.5 ice cream:20.4 pie:35.6]

Enter fullscreen mode Exit fullscreen mode

Thanks for Reading

Top comments (0)

Timeless DEV post...

Git Concepts I Wish I Knew Years Ago

The most used technology by developers is not Javascript.

It's not Python or HTML.

It hardly even gets mentioned in interviews or listed as a pre-requisite for jobs.

I'm talking about Git and version control of course.

One does not simply learn git