Как найти запись функции запуска в main.go? - PullRequest
0 голосов
/ 10 января 2019

Я не программист GO, когда я читаю код GO, я нахожу такой код

func main() {
  ......
        run(options)
}

и я очень запутался, что функция запуска будет работать что? кто-нибудь может помочь?

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Должна быть функция с именем run, определенная и доступная в области видимости файла. Функции доступны в области действия файла, если:

  • Функция определена в файле (очевидно)
  • Функция определена в другом файле в том же каталоге (в том же пакете)
  • Функция определена в пакете, который импортируется в область с использованием синтаксиса точки для импорта

    import . "anotherpackage"
    

    Если этот пакет экспортирует функцию, она будет доступна в текущем файле.

    В вашем примере кода функция run является строчной. Поскольку пакеты в Go экспортируют только те функции, которые начинаются с заглавной буквы, этот сценарий маловероятен.

0 голосов
/ 10 января 2019

Что ж, если честно, код, который вы разместили, выдаст следующее:

prog.go:4:3: syntax error: unexpected ..., expecting }

https://play.golang.org/p/HMv-FydjKWf

Однако в более полном примере:

package main

import "fmt"

type Options struct {
    Enabled bool
}

func run(opts Options) {
    fmt.Printf("%+v\n", opts)
}

func main() {
    opts := Options{
        Enabled: true,
    }

    run(opts)
}

https://play.golang.org/p/-bHPWWxi-wm

Основы того, что происходит, - Go запускает выполнение вашей программы с функции main. В этом случае вы вызываете функцию run и предоставляете ей некоторые параметры времени выполнения, которые вы определили (например, мой случай, когда Enabled равен true без причины).

Предлагаю взглянуть на https://tour.golang.org/, чтобы познакомиться с языком. Ничего особенно уникального в Go не происходит, кроме нескольких синтаксических вариантов.

Go является очень очевидным с его подходом к коду. Для этого нет ничего волшебного, и есть очень простое объяснение того, что происходит. Не уверен, что делает run? Перейти к этой функции и проверить это! Как только вы поймете синтаксис, вы удивитесь, насколько читабельны вещи.

+ Edit : Последнее замечание, которое я хотел бы сделать, заключается в том, что если у вас возникли трудности, просто найти func run(), просто "Найти в каталоге" или любой другой редактор. по выбору называет это. Функция будет в файле в той же папке. Я также рекомендую проверить некоторые пакеты Go для различных редакторов (VS Code, Sublime, Atom и т. Д.), Чтобы вы могли просто щелкнуть по расположению функции. Эти маленькие экономящие время помогают, и в основном просто "Найти в каталоге" для вас.

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