что означает [] [] * тип данных в golang - PullRequest
0 голосов
/ 20 сентября 2018

Предположим, это мой пример кода.При запуске выдает [[]][[] []][[] [] []][[] [] [] []].Помогите мне понять, что изображает этот код и как называется узел маршрутизации [] [] * в терминологии программирования.Является ли это срезом узла или это двумерный массив типа узла.Простите, если я звучу глупо, но я просто пытаюсь учиться.

package main

import "fmt"

type node struct {
    id int
}

func main() {
    var routingtable [][]*node

    for i := 0; i < 4; i++ {
        routingtable = append(routingtable, []*node{})
        fmt.Print(routingtable)
    }
}

1 Ответ

0 голосов
/ 20 сентября 2018

Это просто означает, что он содержит 4 пустых фрагмента указателя узла, что является ожидаемым поведением вашего кода.

Это фрагмент фрагментов указателей узла.

Вот простая модификациявашего кода, чтобы показать вам, как он работает, если вы добавляете узлы к своим фрагментам:

package main

import "fmt"

type node struct {
    id int
}

func main() {
    var routingTable [][]*node
    for i := 0; i < 4; i++ {
        routingTable = append(routingTable, []*node{&node{id: i}})
    }
    fmt.Print(routingTable)
}

Выводит фрагмент фрагментов указателей узлов, содержащий по одному узлу, каждый из которых имеет свой адрес:

[[0x10414020] [0x10414024] [0x10414028] [0x1041402c]]

Попробуйте сами здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...