-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathmain.go
More file actions
90 lines (69 loc) · 1.48 KB
/
Copy pathmain.go
File metadata and controls
90 lines (69 loc) · 1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package main
import "fmt"
type User struct {
id int32
name string
}
type Users struct {
users []User
}
func CreateUser(id int32, name string) *User {
return &User{id, name}
}
func (u *Users) DeleteUser(id int32) User {
var usr User
for i, ele := range u.users {
if ele.id == id {
usr = ele
u.users = append(u.users[:i],u.users[i+1:]... )
break
}
}
return usr
}
func (u *Users) UpdateUser(user User) []User {
var usr []User
for i, ele := range u.users{
if ele.id == user.id {
u.users[i] = user
usr = u.users
break
}
}
return usr
}
func (u *Users) GetUser(id int32) User {
var usr User
for _, ele := range u.users {
if ele.id == id {
usr = ele
break
}
}
return usr
}
func main() {
user1 := User{id: 1, name: "Sundaram"}
user2 := User{id: 2, name: "Aman"}
var users = Users {
users : []User {
user1,
user2,
},
}
var get = users.GetUser(2)
fmt.Println("User of 2 :", get)
createdUser := CreateUser(3, "Pawan")
fmt.Println("created user : ", createdUser)
newUser := CreateUser(3, "Ravi")
users.users = append(users.users, *newUser)
fmt.Println("After Adding a User:", users.users)
deletedUser := users.DeleteUser(1)
fmt.Println("Deleted User:", deletedUser)
fmt.Println("After Deleting a User:", users.users)
updatedUser := User{id: 2, name: "Aman Updated"}
users.UpdateUser(updatedUser)
fmt.Println("After Updating a User:", users.users)
retrievedUser := users.GetUser(3)
fmt.Println("Retrieved User:", retrievedUser)
}