Как в golang вызвать методы наследуемого типа map?

Пользователь

от madalyn.cremin , в категории: Общие вопросы , 15 дней назад

Как в golang вызвать методы наследуемого типа map?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

1 ответ

Пользователь

от carlee , 9 дней назад

@madalyn.cremin 

В языке Golang map не является типом, от которого можно наследоваться, поэтому невозможно вызвать методы наследуемого типа map. Однако, вы можете объявить новый пользовательский тип, который включает в себя map в качестве своего поля, и определить методы для этого типа.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package main

import "fmt"

type MyMap struct {
    data map[string]int
}

func (m *MyMap) Set(key string, value int) {
    m.data[key] = value
}

func (m *MyMap) Get(key string) int {
    return m.data[key]
}

func main() {
    myMap := MyMap{
        data: make(map[string]int),
    }
    myMap.Set("key", 10)
    fmt.Println(myMap.Get("key")) // Output: 10
}


В этом примере MyMap - пользовательский тип, включающий в себя map[string]int в качестве своего поля. Методы Set и Get определены для этого типа и работают с полем data.