Importowanie lokalnego pakietu - prosty przykład

Importowanie lokalnego pakietu - prosty przykład
phaxe
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 43
0

Mam następującą strukturę plików i katalogów kodu źródłowego:

Kopiuj
└───workspace
    ├───main.go
    └───mypkg
         └───mypkg.go

main.go - program główny
mypkg\mypkg.go - lokalny pakiet

mypkg.go:

Kopiuj
package mypkg

import "fmt"

func hello() {
	fmt.Println("Hello, World!")
}

main.go:

Kopiuj
package main

import "workspace/mypkg"

func main() {
	mypkg.hello()
}

Chcę zaimportować lokalny pakiet mypkg według instrukcji na stronie linuxhint.com/golang-import-local-package

W katalogu workspace wykonuję polecenie:
go mod init workspace
Powstaje plik go.mod:

Kopiuj
module workspace

go 1.19

Następnie wykonuję polecenie:
go build
i wywala błąd:

Kopiuj
# workspace
.\main.go:7:8: undefined: mypkg.hello

Teoretycznie widzi lokalny pakiet, bo jak w main.go wpiszę import "workspace/aaa", to mam inny komunikat:

Kopiuj
main.go:3:8: package workspace/aaa is not in GOROOT

Tak jakby nie widział funkcji hello(). Co robię nie tak?

Xarviel
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 847
1

https://yourbasic.org/golang/public-private/

Nazwa funkcji hello powinna zaczynać się wielką literą

Kopiuj
func Hello() {
  // 
}

i w main.go

Kopiuj
func main() {
	mypkg.Hello()
}
phaxe
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 43
0
Xarviel napisał(a):

https://yourbasic.org/golang/public-private/

Nazwa funkcji hello powinna zaczynać się wielką literą

Dzięki. Wiedziałem, że to będzie jakaś drobnostka.
Języka Go uczę się od kilku dni. Czy każda funkcja powinna być z wielkiej litery?

Xarviel
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 847
1
phaxe napisał(a):

Czy każda funkcja powinna być z wielkiej litery?

Można powiedzieć, że jest to taki odpowiednik słówka private / public z innych języków.

Pliki znajdujące się w tym samym pakiecie mają dostęp do wszystkiego, natomiast jak coś eksportujesz poza pakiet to musi być z dużej litery.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.