| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package main
- import (
- "fmt"
- "strings"
- )
- type Person struct {
- firstName string
- lastName string
- }
- func upPerson(p Person) {
- p.firstName = strings.ToUpper(p.firstName)
- p.lastName = strings.ToUpper(p.lastName)
- }
- func main() {
- // 1- struct as a value type:
- var pers1 Person
- pers1.firstName = "Chris"
- pers1.lastName = "Woodward"
- upPerson(pers1)
- fmt.Printf("The name of the person is %s %s\n", pers1.firstName, pers1.lastName)
- // 2 - struct as a pointer:
- pers2 := new(Person)
- pers2.firstName = "Chris"
- pers2.lastName = "Woodward"
- upPerson(*pers2)
- fmt.Printf("The name of the person is %s %s\n", pers2.firstName, pers2.lastName)
- // 3 - struct as a literal:
- pers3 := &Person{"Chris", "Woodward"}
- upPerson(*pers3)
- fmt.Printf("The name of the person is %s %s\n", pers3.firstName, pers3.lastName)
- }
- /* Output:
- The name of the person is Chris Woodward
- The name of the person is Chris Woodward
- The name of the person is Chris Woodward
- */
|