Экспортируемые функции из другого пакета - PullRequest
0 голосов
/ 28 апреля 2018

Я следую инструкциям в ссылке https://golang.org/doc/code.html#Workspaces и создаю свою первую программу Go.

Итак, я попытался сделать библиотеку с этой инструкцией = https://golang.org/doc/code.html#Library

и все идеально до сборки hello.go, это дает мне эту ошибку.

/ hello.go: 10: 13: undefined: stringutil.Reverse

Я уже восстановил свой reverse.go.

Вот мой код:

package main

import (
    "fmt"

    "github.com/d35k/stringutil"
)

func main() {
    fmt.Printf(stringutil.Reverse("!oG ,olleH"))
}

это мой reverse.go (тоже самое что и документы)

package stringutil

func reverse(s string) string {
    r := []rune(s)
    for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
        r[i], r[j] = r[j], r[i]
    }
    return string(r)
}

и моя переменная gopath

export GOPATH=$HOME/GoLang

и мои файлы находятся в

GoLang/src/github.com/mygithubusername/

1 Ответ

0 голосов
/ 28 апреля 2018

Golang Tour укажите экспортируемое имя как

Имя экспортируется, если оно начинается с заглавной буквы. И когда Импортируя пакет, вы можете ссылаться только на его экспортированные имена. любой «неэкспортированные» имена недоступны извне пакета.

Измените имя reverse func на Reverse, чтобы сделать его экспортируемым в основной пакет. Как ниже

package stringutil

func Reverse(s string) string {
    r := []rune(s)
    for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
        r[i], r[j] = r[j], r[i]
    }
    return string(r)
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...