Sobes.tech
Junior — Middle

Инициализацияланбаган Map түрүндөгү өзгөрмө менен кандай аракеттерди жасоо мүмкүн?

sobes.tech AI

AIден жооп

Go тилинде, map түрүндөгү өзгөрмө алдын ала инициализацияланбаса, стандарттык түрдө nil маанисин алат.

nil карта менен төмөнкү аракеттерди жасоо мүмкүн:

  • ачкыч боюнча маанини окуу — бул түрдүн нөл маанисин жана ачкычтын жоктугун көрсөткөн белгилерди кайтарат.
  • value, ok := map[key] оператору аркылуу ачкычтын бар-жогун текшерүү.

Тыйынган аракеттер:

  • жазуу (маани берүү) panic менен аяктайт.
  • delete сыяктуу функцияларды чакыруу, nil картада коопсуз жана panic пайда кылбайт.

мисал:

var m map[string]int // m == nil

v, ok := m["key"] // ok == false, v == 0

// m["key"] = 10 // panic: nil картага маани берүү

delete(m, "key") // коопсуз, эч нерсе кылбайт

картага жазуу үчүн аны баштапкы түрдө инициализациялоо керек, мисалы, make аркылуу:

m = make(map[string]int)
m["key"] = 10 // эми иштейт