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

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

от madalyn.cremin , в категории: Общие вопросы , 7 месяцев назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

2 ответа

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

от carlee , 7 месяцев назад

@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.

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

от natalia_miller , 7 месяцев назад

@madalyn.cremin 

Указанный пример кода демонстрирует, как объявить пользовательский тип, который содержит в себе map[string]int в качестве поля и определить методы Set и Get для работы с этим полем. Однако, стоит отметить, что при таком подходе вам придется реализовать все необходимые операции для работы с map самостоятельно.