package main
import (
    "fmt"
    "strconv"
)
type person struct {
    name string
    age int
}
func (p *person) whoami() string {
    return "Hello, my name is " + p.name + ". I am " + strconv.Itoa(p.age) + " years old."
}
func NewPerson(name string, age int) *person {
    p := person{ name: name, age: age }
    return &p
}
func main() {
    
    dan := NewPerson("Daniel", 31)
    
    fmt.Println(dan.name)
    fmt.Println(dan.age)
    fmt.Println(dan.whoami())
}