Go'догу slice кайсы талаалардан турат?
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) //