Ի՞նչ դաշտերից է բաղկացած slice-ը Go-ում։
Golang
Կան իրավիճակներ, երբ դուք չեք համաձայնել թիմի ղեկավարի կամ շահագրգիռ կողմերի հետ: Ինչ եք արել?
Եթե հասկանում եք, որ ժամկետները մոտենում են և դուք ժամանակին ավարտել չեք կարող, ի՞նչ եք անում։
Ինչպե՞ս հասկանում եք, որ առաջադրանքը որակյալ է կատարված։
Դու երբևէ ստիպված էիք ինքնուրույն ընդունել ճարտարապետական որոշումներ?
func revert(nums []int) { // 1 2 3 4 => 4 3 2 1 } func main() { a := []int{1,2,3,4,5} revert(a) fmt.Println(a) } func revert(nums []int) { // 1 2 3 4 => 4 3 2 1 l, r := 0, len(nums)-1 for l < r { nums[l], nums[r] = nums[r], nums[l] l++ r-- } } func main() { a := []int{1,2,3,4,5} revert(a) fmt.Println(a) }
Վերլուծեք հետևյալ Go կոդի հատվածը և բացատրեք, թե ինչ կպատկերացվի ծրագրի կողմից և ինչու. ```go func main() { type User struct { Name string } m := map[string]User{ "a": {Name: "Alice"}, } u := m["a"] u.Name = "Bob" fmt.Println(m["a"].Name) } ```
Պատմեք ձեր վերջին նախագծի մասին։ Ի՞նչ դեր եք ունեցել այնտեղ։
func main() { defer func() { if r := recover(); r != nil { fmt.Println("վերականգնվեց") } }() defer func() { fmt.Println("կասեցում") }() go func() { fmt.Println("միջի գորուտին սկսում է") panic("փլուզում") fmt.Println("միջի գորուտին ավարտ") }() time.Sleep(time.Second) }
Դու օգտագործում եք նյարդային ցանցեր ձեր աշխատանքի մեջ? Ինչպես հենց? Ինչպե՞ս եք վերաբերվում նրանց։
1.21 func main() { var nums []*int for i := 0; i < 10; i++ { nums = append(nums, &i) } for _, v := range nums { go func() { fmt.Println(v) }() } }
Ի՞նչ եք անում, եթե գործառույթը վերջնամասում անհասկանալի է կամ ՏՀ-ն տարբերվում է արդեն կատարվածից։
a := []int{1} // *T &1111000 len cap fmt.Println(len(a), cap(a)) // 1 1 b := append(a, 2) // *T &1111001 fmt.Println(len(b), cap(b)) // 2 2 b[0] = 0 fmt.Println(a) // [1] fmt.Println(b) // [0 2] c := append(b, 3) // [0 2 3] len = 3, cap = 4 // *T &1111011 ? d := append(c, 4) // [0 2 3 4] // len = 4, cap = 4 // *T &1111011 ? c[0] = 100 fmt.Println(b) // fmt.Println(c) // fmt.Println(d) //