Go был создан как язык, продвигающий эффективные методы разработки программного обеспечения. Повторное использование кода является фундаментальным компонентом высококачественного программного обеспечения, что отражено в концепции Не повторяйтесь.
import "fmt"
Пакет «fmt» содержит ряд функций, связанных с форматированием и выводом на экран. Такое объединение кода служит трем целям:
- Это снижает вероятность перекрытия имен. Это делает наши имена функций простыми и точными.
- Он упорядочивает код, чтобы упростить поиск и повторное использование кода.
- Это ускоряет компилятор, требуя перекомпиляции меньшего количества разделов программы. Несмотря на то, что мы используем пакет fmt, нам не нужно его перекомпилировать каждый раз, когда мы обновляем нашу программу.
Экспортированные и неэкспортированные имена
Все, что начинается с заглавной буквы (переменная, тип или функция), экспортируется и отображается вне пакета.
Все, что не начинается с заглавной буквы, не экспортируется и может быть просмотрено только в том же пакете.
package mainimport ( "fmt" "math" )
func main() { // MaxInt64 is an exported name fmt.Println("Max value of int64: ", int64(math.MaxInt64)) // Phi is an exported name fmt.Println("Value of Phi (ϕ): ", math.Phi) // pi starts with a small letter, so it is not exported fmt.Println("Value of Pi (𝜋): ", math.pi) }
# Output ./exported_names.go:16:38: cannot refer to unexported name math.pi ./exported_names.go:16:38: undefined: math.pi
Индивидуальные пакеты
Чтобы создать собственный пакет, мы должны сначала создать новый файл и объявить его. В качестве примера,
// declare package
package calculator
Теперь мы можем писать функции в файле. В качестве примера,
package calculator
// create add function
func Add(n1, n2 int) int {
return n1 + n2
}
// create subtract function
func Subtract(n1, n2 int) int {
return n1 - n2
}
Импорт пользовательского пакета
Теперь мы можем включить пользовательский пакет в наш основной файл.
package main
// import the custom package calculator
import (
"fmt"
"Packages/calculator"
)
func main() {
number1 := 9
number2 := 5
// use the add function of calculator package
fmt.Println(calculator.Add(number1, number2))
// use the subtract function of calculator package
fmt.Println(calculator.Subtract(number1, number2))
}
В этом случае мы успешно импортировали и использовали пакет калькулятора в нашей программе.
Включая сторонние пакеты
Используя модули Go, вы можете легко добавлять сторонние пакеты в свой проект. Просто импортируйте пакет в любой из исходных файлов вашего проекта, и Go загрузит его для вас при следующей сборке/запуске проекта.
package main import ( "fmt" "rsc.io/quote" ) func main() { fmt.Println(quote.Go()) }
$ go run main.go go: finding rsc.io/quote v1.5.2 go: downloading rsc.io/quote v1.5.2 go: extracting rsc.io/quote v1.5.2 go: downloading rsc.io/sampler v1.3.0 go: extracting rsc.io/sampler v1.3.0 go: downloading golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c go: extracting golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c go: finding rsc.io/sampler v1.3.0 go: finding golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c Don't communicate by sharing memory, share memory by communicating.
Эта новая зависимость также будет добавлена Go в файл go.mod.
Установка пакетов вручную
Чтобы загрузить сторонние пакеты из удаленных репозиториев, используйте команду go get.
$ go get -u github.com/jinzhu/gorm
Приведенный выше код загружает пакет gorm с Github и добавляет его в ваш файл go.mod в качестве зависимости.
Вот и все. Теперь вы можете импортировать и использовать вышеуказанный пакет в своей программе следующим образом:
import "github.com/jinzhu/gorm"
Прежде чем я начну, я не могу не упомянуть сайты, где я нашел определения и примеры для вышеупомянутых кодов. Я использовал следующие сайты: