mirror of
https://github.com/MADTeacher/go_basics.git
synced 2025-11-23 21:34:47 +02:00
35 lines
670 B
Go
35 lines
670 B
Go
package main
|
|
|
|
import "fmt"
|
|
|
|
type employee struct {
|
|
name string
|
|
age uint8
|
|
}
|
|
|
|
func valueFunc(emp employee) {
|
|
emp.name = "O_O"
|
|
fmt.Printf("Copy value: %+v\n", emp)
|
|
}
|
|
|
|
func pointFunc(emp *employee) {
|
|
emp.name = "^_^"
|
|
fmt.Printf("Point to value: %+v\n", emp)
|
|
}
|
|
|
|
func main() {
|
|
emp := employee{
|
|
name: "Tom",
|
|
age: 45,
|
|
}
|
|
newEmployee := emp
|
|
newEmployee.age = 22
|
|
fmt.Printf("newEmployee = %+v\n", newEmployee)
|
|
fmt.Printf("emp = %+v\n", emp)
|
|
|
|
valueFunc(emp) // передача в функцию по значению
|
|
fmt.Printf("emp = %+v\n", emp)
|
|
pointFunc(&emp) // передача в функцию по указателю
|
|
fmt.Printf("emp = %+v\n", emp)
|
|
}
|