`package main
import "fmt"
type User struct {
Name string
IsActive bool
Roll int
}
func NewUser() *User {
user := new(User)
return user
}
func (u *User) SetName(v string) *User {
return &User{Name: v, Roll: u.Roll, IsActive: u.IsActive}
}
func (u *User) SetIsActive(v bool) *User {
return &User{Name: u.Name, Roll: u.Roll, IsActive: v}
}
func (u *User) SetRoll(v int) *User {
return &User{Name: u.Name, Roll: v, IsActive: u.IsActive}
}
func main() {
user := NewUser().SetIsActive(true).SetName("harsh").SetRoll(69)
fmt.Println(user)
}`