Golang Day2


Struct & Pointer

不多說,直接進程式碼吧

package main

import(
  "fmt"
)

type Info struct{
  age int
  name string
}

func (i *Info) GetAge() int{
   return i.age 
}

func (i *Info) GetName() string{
   return i.name 
}

func (i *Info) SetAge(newAge int) {
  i.age = newAge
}

//call by address (只是為了示範)
func AfterYears(inAge *int,years int) int{
  *inAge+=years
   return *inAge
}

//call by value
func AfterYears(inAge int,years int) (newAge int){
   newAge = inAge + years
   return
}

func main() {
    Peter :=Info{
      age:18,
      name:"Peter",
    }
    
    fmt.Println(Peter)
    fmt.Println(Peter.GetAge())

    Peter.SetAge(AfterYears(&Peter.age,5))
    fmt.Println(Peter.GetAge())
}


注意事項

  • 在 Golang 中,SliceMap 皆屬於 Pointer 型別

Q:

  1. 在 Golang 中 struct 變數是屬於 Pointer 型別嗎 ?

  • Share:

You Might Also Like

0 意見