Разное

Hello world go: Go by Example: Hello World

Содержание

Создание вашей первой программы на Go

Введение

“Hello, World!” — это классическая программа, традиционно используемая в компьютерном программировании. Это простая и полноценная первая программа для начинающих, и с ее помощью легко определить, что среда настроена правильно.

В этом обучающем руководстве мы подробно рассмотрим создание этой программы на языке Go. Чтобы сделать программу поинтереснее, мы изменим традиционную программу “Hello, World!” так, чтобы она запрашивала имя пользователя. Затем это имя можно будет использовать в приветствии. После завершения этого обучающего модуля у вас будет программа, которая будет выглядеть при запуске следующим образом:

Output

Please enter your name. Sammy Hello, Sammy! I'm Go!

Предварительные требования

Для начала прохождения этого обучающего модуля на вашем компьютере должна быть настроена локальная среда разработки Go. Вы можете настроить ее, следуя указаниям одного из следующих обучающих руководств:

Шаг 1 — Написание простой программы “Hello, World!”

Чтобы написать программу “Hello, World!”, откройте nano или другой текстовый редактор командной строки и создайте новый файл:

Когда текстовый файл откроется в окне терминала, мы напишем нашу программу:

hello.go

package main

import "fmt"

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

Давайте обсудим отдельные компоненты кода.

package — это ключевое слово Go, определяющее, к какому пакету кода принадлежит данный файл. Для каждой папки может иметься только один покет, и в начале каждого файла .go должно декларироваться имя того же пакета. В этом примере код принадлежит пакету main.

import — это ключевое слово Go, указыващее компилятору Go, какие другие пакеты вы хотите использовать в этом файле. Здесь вы импортируете пакет fmt из стандартной библиотеки. Пакет fmt содержит функции форматирования и вывода, которые могут быть полезны при разработке.

fmt.Println — это функция Go из пакета fmt, которая предписывает компьютеру вывести текст на экран.

После функции fmt.Println идет последовательность символов в кавычках, например "Hello, World!". Любые символы внутри кавычек называются строкой. Функция fmt.Println выведет эту строку на экран при выполнении программы.

Сохраните файл и закройте nano, нажав CTRL + X. Когда вам будет предложено сохранить файл, нажмите Y.

Теперь вы можете проверить программу в действии.

Шаг 2 — Запуск программы в Go

После написания программы “Hello, World!” вы можете ее запустить. Для этого используется команда go, после которой идет имя только что созданного файла.

Программа будет исполнена и выведет на экран следующее:

Output

Hello, World!

Посмотрим, что фактически произошло.

Перед запуском программы Go требуют компиляции. При вызове go run с именем файла, в данном случае hello.go, команда go компилирует приложение и запускает полученный двоичный файл. Если программа написана на компилируемом языке программирования, компилятор берет исходный код программы и генерирует другой тип кода низкого уровня (например, машинный код) для получения исполняемой программы.

Приложения Go должны иметь пакет main и ровно одну функцию main(), которая будет выступать в качестве точки входа приложения. Функция main не принимает аргументов и не возвращает никаких значений. Вместо этого она сообщает компилятору Go, что пакет должен быть скомпилирован как исполняемый пакет.

После компиляции код запускается посредством входа в функцию main() в пакете main. Программа выполняет строку fmt.Println("Hello, World!") , вызывая функцию fmt.Println. Значение строки Hello, World! передается функции. В этом примере строка Hello, World! также называется аргументом, поскольку это значение, которое передается методу.

Кавычки, в которые заключена фраза Hello, World!, не выводятся на экране, поскольку они показывают Go, где начинается и кончается ваша строка.

На этом шаге вы создали работающую программу “Hello, World!” с помощью Go. На следующем шаге мы покажем, как сделать программу более интерактивной.

Шаг 3 — Запрос ввода пользователя

При каждом запуске программа дает один и тот же результат. На этом шаге вы добавите в программу запрос имени пользователя. Затем это имя можно будет использовать в выводимых результатах.

Вместо изменения существующей программы создайте новую программу greeting.go с помощью редактора nano:

Вначале добавьте этот код, который предлагает пользователю ввести имя:

greeting.go

package main

import (
    "fmt"
)

func main() {
  fmt.Println("Please enter your name.")
}

Затем используйте функцию fmt.Println для вывода текста на экран.

Затем добавьте выделенную строку для сохранения введенных пользователем данных:

greeting.go

package main

import (
    "fmt"
)

func main() {
  fmt.Println("Please enter your name.")
  var name string
}

Строка var name string создаст новую переменную с помощью ключевого слова var. Мы присваиваем этой переменной имя name, и она имеет тип string.

Затем добавьте выделенную строку для записи вводимых пользователем данных:

greeting.go

package main

import (
    "fmt"
)

func main() {
  fmt.Println("Please enter your name. ")
  var name string
  fmt.Scanln(&name)
}

Метод fmt.Scanln предписывает компьютеру ожидать ввода данных с клавиатуры, заканчивающегося символом новой строки или (\n). Это приостанавливает выполнение программы, позволяя пользователю ввести любой желаемый текст. Программа продолжит выполнение, когда пользователь нажмет клавишу ENTER на клавиатуре. Все нажатия клавиш, включая нажатие клавиши ENTER, регистрируются и конвертируются в строку символов.

Нам нужно использовать эти символы в выводимых программой результатах, и поэтому мы сохраним их, записав их в строковую переменную с именем name. Go хранит эту строку в памяти компьютера до завершения выполнения программы.

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

greeting.go

package main

import (
    "fmt"
)

func main() {
  fmt.Println("Please enter your name.")
  var name string
  fmt.Scanln(&name)
  fmt.Printf("Hi, %s! I'm Go!", name)
}

На этот раз вместо использования метода fmt.Println мы используем fmt.Printf. Функция fmt.Printf берет строку и использует специальные глаголы вывода (%s) для вставки значения name в строку. Мы делаем это так, потому что Go не поддерживает интерполяцию строк, при которой можно брать значение переменной и помещать его внутри строки.

Сохраните файл и закройте nano, нажав CTRL + X. Нажмите Y, когда вам будет предложено сохранить файл.

Запустите программу. Вам будет предложено ввести имя, так что введите его и нажмите ENTER. Результат может немного не соответствовать ожиданиям:

Output

Please enter your name. Sammy Hi, Sammy ! I'm Go!

Вместо Hi, Sammy! I'm Go! после имени выводится разрыв строки.

Программа зарегистрировала все нажатия клавиш, включая клавишу ENTER, которую мы нажимаем, чтобы программа продолжила выполнение. При нажати клавиши ENTER создается специальный символ, которы создает новую строку. Программа делает именно то, что ей предписывается, то есть отображает введенный текст, включая символ новой строки. Это не то, чего вы ожидаете от вывода, но вы можете исправить проблему с помощью дополнительных функций.

Откройте файл greeting.go в редакторе:

Найдите в программе следующую строчку:

greeting.go

...
fmt.Scanln(&name)
...

Добавьте после нее следующую строчку:

greeting.go

name = strings.TrimSpace(name)

Она использует функцию TrimSpace из стандартной библиотеки Go strings в строке, которую вы записали с помощью fmt.Scanln. Функция strings.TrimSpace удаляет символы пробела, в том числе символы новой строки в начале и конце строки. В данном случае будет удален символ новой строки в конце строки, созданный при нажатии клавиши ENTER.

Чтобы использовать пакет strings, его нужно импортировать в программу.

Найдите в программе следующие строки:

greeting.go

import (
    "fmt"
)

Добавьте следующую строку для импорта пакета strings:

greeting.go

import (
    "fmt"
  "strings"
)

Теперь программа будет содержать следующее:

greeting.go

package main

import (
        "fmt"
        "strings"
)

func main() {
    fmt.Println("Please enter your name.")
    var name string
    fmt.Scanln(&name)
    fmt.Printf("Hi, %s! I'm Go!", name)
    name = strings.TrimSpace(name)
}

Сохраните и закройте nano. Нажмите CTRL + X, а затем нажмите Y, когда вам будет предложено сохранить файл.

Запустите программу снова:

Теперь после ввода имени и нажатия клавиши ENTER выводится ожидаемый результат:

Output

Please enter your name. Sammy Hi, Sammy! I'm Go!

Теперь у вас имеется программа Go, которая принимает данные пользователя и выводит их на экран.

Заключение

В этом обучающем руководстве мы написали программу “Hello, World!”, которая принимает вводимые пользователем данные, обрабатывает результаты и выводит их на экран. Теперь у вас имеется базовая программа для работы, и вы можете попробовать дополнить и расширить ее. Например, вы можете спросить любимый цвет пользователя и сделать так, чтобы программа говорила, что его любимый цвет красный. Вы даже можете использовать эту же методику для создания простой программы Mad-Lib.

Golang: установка и Hello, World

Очень кратко — установка Golang, языка программирования от Google, и пример «Hello, World«.

Для установки Golang на RHEL-дистрибутивы — требуется репозиторий Epel:

$ sudo yum repolist enabled
...
epel                                 Extra Packages for Enterprise Linux 6 - x86_64                                 11689+165
epel-debuginfo              Extra Packages for Enterprise Linux 6 - x86_64 - Debug                  2167+24
...

Устанавливаем:

$ sudo yum install golang
....
(1/3): golang-1.5.1-0.el6.x86_64.rpm                                                                                                                                                                                  | 1.2 MB     00:00
(2/3): golang-bin-1.5.1-0.el6.x86_64.rpm                                                                                                                                                                              |  41 MB     00:06
(3/3): golang-src-1. 5.1-0.el6.noarch.rpm                                                                                                                                                                              | 3.7 MB     00:01
...

Проверяем:

$ which go
/usr/bin/go

Получение помощи:

 $ go help
Go is a tool for managing Go source code.

Usage:

        go command [arguments]

The commands are:

        build       compile packages and dependencies
...
        vet         run go tool vet on packages

Use "go help [command]" for more information about a command.

Additional help topics:

        c           calling between Go and C
...
        testfunc    description of testing functions

Use "go help [topic]" for more information about that topic.

Создаем файл с расширением .go с таким содержимым:

package main

import "fmt"

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

Запускаем:

$ go run hw.go
Hello, World.

Готово.

Ссылки по теме

https://tour.golang.org

http://www.tutorialspoint.com/go



Раздел: HOWTO’s
Метки: Golang

Go не работает пример hello world

Я устанавливаю go в Ubuntu 14.04 и считаю, что мой GOPATH$ установлен правильно и, похоже, не может запустить этот файл go install hello.go. Я избавился от всех ошибок пути, с которыми столкнулся первым, но я все еще не вижу успешного запуска

Go устанавливается в /etc/go

$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/etc/go/packages"
GORACE=""
GOROOT="/etc/go"
GOTOOLDIR="/etc/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"

И вот я сделал файл, отредактированный через nano, чтобы скопировать пример hello world, но когда я запускаю его, ничего не происходит. ..

$ mkdir -p $GOPATH/src/github.com/hackg
$ nano $GOPATH/src/github.com/hackg/hello/hello.go
$ go install github.com/hackg/hello
$

QUESTION-он должен отображать hello world там, доказывая, что Go правильно строит файлы, но все, что я получаю, — это свежее приглашение terminal, готовое к новой команде, без HELLO WORLD

Я попытался посмотреть другие сообщения stackoverflow, но безуспешно — ex Go, Golang : не имеет смысла, что у меня должны быть файлы перед импортом

go

ubuntu-14.04

Поделиться

Источник


hackg    

19 марта 2016 в 05:42

4 ответа


  • Откуда взялся пример «Hello World!»?

    Возможный Дубликат : Откуда берется ‘Hello world’? Hello world! -это наиболее часто используемый пример, который я могу придумать, но я действительно не знаю, откуда он взялся. Был ли он использован какой-то конкретной книгой или просто распространился среди разработчиков? Люди писали…

  • Пример Hello world для инъекции зависимостей

    Существует много вариативности в том, что вытягивает Google, и ни один из них, похоже, не очень хорошо дистиллирует основы. Может ли кто-нибудь привести пример hello world инъекции зависимостей JavaScript. Я использовал DI в PHP, но без простой парадигмы класса-объекта мне трудно понять, как это…



4

Нет, эта команда не будет запускать вашу программу; go install просто сделал двоичный файл, который вы можете запустить с $GOPATH/bin/hello . Вы можете добавить к своему ~/.bashrc или эквиваленту строку export PATH=$GOPATH/bin:$PATH и открыть новый shell (например, закрыв и снова открыв свою программу terminal), так что вы можете вызвать его только с помощью hello . go run, когда файл будет скомпилирован и запущен, но разумно начать с go install , потому что это то, что вы собираетесь использовать для программ «real», а не для быстрых тестов.

(Похоже, вы находитесь на правильном пути с GOPATH и все такое, но для настройки среды Go в целом этот вопрос может оказаться полезным.)

Поделиться


twotwotwo    

19 марта 2016 в 05:50



1

Я сделал следующее, И это прекрасно работает для меня. Вы можете попробовать это:-

Выполните следующую команду в вашем terminal:-

sudo apt-get install golang

Это позволит установить golang в вашей системе

Добавьте следующие строки в файл .bashrc:-

export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

Теперь закройте и откройте shell. И выполните следующую команду, чтобы проверить версию go, установленную в вашей системе:-

go version

Предположим, что hello.go — это ваш файл, содержащий программу hello world, а затем выполните следующие действия:-

go run hello.go

Надеюсь, это поможет.

Поделиться


a3.14_Infinity    

19 марта 2016 в 06:02



0

Я понял это, я думал, что он будет запускать команду, а не просто устанавливать ее.

все, что мне нужно было сделать после установки, это набрать hello и нажать enter

$ hello
hello, world

Наверное, я плохо читал инструкции. спасибо твотвотво

Поделиться


hackg    

19 марта 2016 в 06:03


  • Пример Hello World для SimplexSolver

    Я пытаюсь решить задачу оптимизации с помощью Apache Commons. Я нашел здесь пример Hello World для Commons Math 2. Но я хотел бы использовать Commons Math 3.2 и не смог найти ни одного примера того, как использовать эту часть кода: PointValuePair solution = null; SimplexSolver solver = new…

  • Как работает пример sinatra hello world?

    Где определяется метод ‘get’? И как это называется ни на каком объекте? require ‘sinatra’ get ‘/hi’ do Hello World! end Пример с домашней страницы http: / / www.sinatrarb.com/ .



0

Это дает инструкции, чтобы заставить ваш пример hello world работать.

Для компиляции и установки пакетов и зависимостей:

go install github.com/user/hello

Он поместит исполняемую команду hello (или hello.exe) в каталог bin вашего рабочего пространства.

Чтобы построить программу go в двоичные файлы:

go build github.com/user/hello

Бежать:

$ $GOPATH/bin/hello
hello, world

Поделиться


Apoorva Manjunath    

19 марта 2016 в 06:51


Похожие вопросы:

TCPDF hello world пример использования composer

Каков минимальный пример hello world для TCPDF? Я вижу более 60 примеров в https://tcpdf.org/examples/ , и ни один из них не работает с композитором, и все они очень сложны. Я ищу что-то простое,…

Пример Xode 4.5 Hello World не работает

Я в значительной степени новичок XCode, и поэтому я попробовал пример Hello World, приведенный в документации XCode: краткое руководство по началу работы: учебник: использование Xcode для написания…

JSNI Hello World не работает

Я сделал простой пример Hello World GWT, используя JSNI. Он не делает ничего, кроме отображения сообщения. Это код в классе EntryPoint: public void onModuleLoad() { // TODO Auto-generated method. ..

Откуда взялся пример «Hello World!»?

Возможный Дубликат : Откуда берется ‘Hello world’? Hello world! -это наиболее часто используемый пример, который я могу придумать, но я действительно не знаю, откуда он взялся. Был ли он…

Пример Hello world для инъекции зависимостей

Существует много вариативности в том, что вытягивает Google, и ни один из них, похоже, не очень хорошо дистиллирует основы. Может ли кто-нибудь привести пример hello world инъекции зависимостей…

Пример Hello World для SimplexSolver

Я пытаюсь решить задачу оптимизации с помощью Apache Commons. Я нашел здесь пример Hello World для Commons Math 2. Но я хотел бы использовать Commons Math 3.2 и не смог найти ни одного примера того,…

Как работает пример sinatra hello world?

Где определяется метод ‘get’? И как это называется ни на каком объекте? require ‘sinatra’ get ‘/hi’ do Hello World! end Пример с домашней страницы http: / / www.sinatrarb.com/ .

Простой пример TCPClient/Listener («hello world»)

Все, что я ищу, — это простой пример TCPClient/Listener (hello world). Я новичок, и примеры классов Microsoft TCPClient/Listener-это не то, что я ищу. Все, что я ищу, — это TCPClient, чтобы…

мифрил hello world MVC пример не работает

У меня возникли проблемы с работой примера Mithril hello world MVC. Вот мой код, скопированный с домашней страницы Mitrhil . Обратите внимание, что единственное изменение, которое я сделал, состояло…

Пример Hello world не работает

Я следую учебнику для начинающих с Android Studio, и есть пример Hello World, подобный этому: package com.example.moi.scaleguess; import android.support.v7.app.AppCompatActivity; import…

Руководство по выполнению скрипта «Hello world!» Скрипт Python — Azure Machine Learning



  • Посмотрите, не получилось, проверьте, легко ли прочитать сообщение об ошибке

  • Внесите минимальное разумное изменение в код

Возможно, вы написали что-то похожее на эту

 

func Hello (строка имени, языковая строка) строка {

if name == "" {

name = "World"

}

если язык == испанский {

вернуть испанскийHelloPrefix + name

}

если язык == французский {

вернуть французский name +HelloPrefix

}

return englishHelloPrefix + name

}

Когда у вас много , если операторы проверяют конкретное значение, вместо этого обычно используется оператор switch .Мы можем использовать переключатель для рефакторинга кода, чтобы его было легче читать и расширять, если мы хотим добавить дополнительную языковую поддержку позже

 

func Hello (строка имени, строка языка) строка {

if name == "" {

name = "World"

}

префикс: = englishHelloPrefix

переключить язык {

французский регистр:

префикс = французский }

возврат префикса + имя

}

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

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

 

func Hello (строка имени, языковая строка) строка {

if name == "" {

name = "World"

}

возврат welcomePrefix (язык) + имя

}

func welcomePrefix (языковая строка) (префиксная строка) {

переключить язык {

case french:

prefix = french HelloPrefix

case spanish:

prefix = spanishHelloPrefix

english prefix

0003 по умолчанию:

}

return

}

Несколько новых концепций:

  • В нашей сигнатуре функции мы сделали именованное возвращаемое значение (строка префикса) .

  • Это создаст в вашей функции переменную с именем prefix .

    • Ему будет присвоено «нулевое» значение. Это зависит от типа, например int s равны 0, а для string s это "" .

      • Вы можете вернуть все, что установлено, просто вызвав return , а не return prefix .

    • Это будет отображаться в Go Doc для вашей функции, чтобы он мог прояснить цель вашего кода.

  • default в случае коммутатора будет разветвлен, если ни один из других операторов case не совпадет.

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

Кто знал, что можно получить столько от Привет, мир ?

К настоящему моменту вы должны иметь некоторое представление о:

Некоторые синтаксисы Go около

  • Объявление функций с аргументами и типами возврата

  • Объявление переменных и констант

Процесс TDD и

почему шаги важны

  • Напишите неудачный тест и увидите, что он не пройден , чтобы мы знали, что написали соответствующий тест для наших требований и увидели, что он дает простое для понимания описание отказа

  • Написание наименьшего количества кода, чтобы он прошел, чтобы мы знали, что у нас есть работающее программное обеспечение

  • Затем рефакторинг , подкрепленный безопасностью наших тестов, чтобы гарантировать, что у нас есть хорошо продуманный код, который легко работает с

В нашем случае мы перешли с Hello () на Hello ("name") на Hello ("name", "French") небольшими, легкими для понимания шагами.

Это, конечно, тривиально по сравнению с программным обеспечением "реального мира", но принципы все же остаются в силе. TDD - это навык, который требует практики для развития, но если вы сможете разбить проблемы на более мелкие компоненты, которые вы сможете протестировать, вам будет намного легче писать программное обеспечение.

Go Hello World - golangbot.com

Это руководство устарело. Пожалуйста, посетите https://golangbot.com/hello-world-gomod/ для получения обновленной версии.

Это второй учебник в нашей серии руководств по Голангу.Пожалуйста, прочтите руководство по Golang, часть 1: Введение и установка, чтобы узнать, что такое golang и как установить golang.

Нет лучшего способа выучить язык программирования, чем запачкать руки кодом. Давайте продолжим и напишем нашу первую программу.

Я лично рекомендовал бы использовать Visual Studio Code с расширением go в качестве IDE. Он имеет автозаполнение, стили кода и множество других функций.

Настройка рабочего пространства Go

Перед тем, как начать писать код, мы должны настроить рабочее пространство go.

В случае Mac или Linux рабочее пространство go должно находиться в $ HOME / go. Итак, давайте продолжим и создадим каталог go внутри $ HOME .

В случае Windows рабочее пространство должно располагаться в C: \ Users \ YourName \ go . Итак, давайте создадим каталог go внутри C: \ Users \ YourName .

Можно использовать другой каталог в качестве рабочего пространства, установив переменную среды GOPATH.Но пока для простоты воспользуемся указанным выше расположением.

Все исходные файлы для go должны находиться в каталоге с именем src внутри рабочей области. Итак, давайте создадим каталог src внутри каталога go , который мы создали выше.

Каждый проект go должен, в свою очередь, иметь собственный подкаталог внутри src. Давайте создадим каталог hello внутри src для хранения проекта hello world.

После создания указанных выше каталогов структура каталогов должна выглядеть так, как показано ниже.

  перейти
          src
            Привет
  

Сохраните следующую программу как helloworld.go в только что созданном каталоге hello.

  пакет основной

импорт "FMT"

func main () {
    fmt.Println ("Привет, мир")
}
  

Вот как будет выглядеть структура каталогов после создания указанной выше программы

  перейти
          src
            Привет
                helloworld.go
  

Запуск программы на ходу

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

1) С помощью команды go run введите go run workspacepath / src / hello / helloworld.go в командной строке.

workspacepath в приведенной выше команде следует заменить на путь к вашему рабочему пространству ( C: / Users / YourName / go в Windows и $ HOME / go в Linux или Mac)

Вы должны увидеть вывод Hello World в консоли.

2) Использование команды go install - запустите команду go install hello , а затем workspacepath / bin / hello , чтобы запустить программу.

workspacepath в приведенной выше команде следует заменить на путь к вашему рабочему пространству ( C: / Users / YourName / go в Windows и $ HOME / go в Linux или Mac). Вы должны увидеть тот же вывод Hello World в командной строке.

Когда вы набираете go install hello , инструмент go ищет пакет hello (hello называется пакетом, мы рассмотрим пакеты более подробно позже) внутри рабочей области. Затем он создает двоичный файл с именем hello ( hello.exe в случае Windows) внутри каталога bin рабочей области. После запуска go install hello

структура каталогов должна выглядеть, как показано ниже.

  перейти
         мусорное ведро
           Привет
         src
           Привет
               helloworld.go
  

3) Третий классный способ запуска программы - это игровая площадка для игры в го. Хотя у этого есть ограничения, этот метод пригодится, когда мы хотим запускать простые программы. Я создал площадку для программы hello world.Щелкните здесь, чтобы запустить программу онлайн.

Вы можете использовать игровую площадку go, чтобы поделиться своим исходным кодом с другими.

Краткое объяснение программы hello world

Вот программа hello world, которую мы только что написали

  пакет основной // 1

импорт "fmt" // 2

func main () {// 3
    fmt.Println ("Hello World") // 4
}
  

Здесь мы вкратце увидим, что делает каждая строка программы. Мы подробно рассмотрим каждый раздел в следующих уроках.

основной пакет - Каждый файл go должен начинаться с оператора имени пакета . Пакеты используются для разделения кода и возможности повторного использования. Здесь используется имя пакета main

import "fmt" - Пакет fmt импортируется и будет использоваться внутри основной функции для вывода текста на стандартный вывод.

func main () - Main - это специальная функция. Выполнение программы начинается с основной функции. Основная функция всегда должна находиться в основном пакете . { и } обозначают начало и конец основной функции.

fmt.Println ("Hello World") - Функция Println пакета fmt используется для записи текста в стандартный вывод.

Код доступен для скачивания на github.

Теперь вы можете перейти к учебной части 3 по Golang: Переменные, чтобы узнать о переменных в golang.

Пожалуйста, оставляйте свои отзывы и вопросы в разделе комментариев. Спасибо.

Следующее руководство - переменные

Ваша первая программа - введение в программирование на Go

Традиционно первая программа, которую вы пишете на любом языке программирования, - это
называется программой «Hello World» - программа, которая просто выводит
Hello World на свой терминал. Напишем на Go.

Сначала создайте новую папку, в которой мы можем хранить нашу программу.Создать папку
с именем ~ / src / golang-book / chapter2 . (Где ~ означает
ваш домашний каталог) С терминала вы можете сделать это, введя
следующие команды:

 mkdir src / golang-book
mkdir SRC / книга-голанг / chapter2 

Используя текстовый редактор, введите следующее:

 основной пакет

импорт "FMT"

// это комментарий

func main () {
    fmt.Println ("Привет, мир")
} 

Убедитесь, что ваш файл идентичен тому, что показан здесь, и сохраните его как
основной.перейдите в только что созданную папку. Откройте новый терминал
и введите следующее:

 cd src / golang-book / chapter2
иди беги main.go 

Вы должны увидеть Hello World , отображаемый в вашем терминале.
Команда go run принимает последующие файлы (разделенные
пробелы), компилирует их в исполняемый файл, сохраненный во временном каталоге, и
затем запускает программу. Если вы не видели Hello World
отображается сообщение о том, что вы, возможно, ошиблись при наборе текста в программе.Go
компилятор подскажет, в чем заключается ошибка. Как большинство
компиляторы, компилятор Go чрезвычайно педантичен и не терпит
ошибки.

Как читать программу Go

Давайте рассмотрим эту программу подробнее. Программы Go читаются сверху вниз
снизу слева направо. (как в книге) В первой строке написано следующее:

 основной пакет 

Это известно как «объявление пакета». Каждая программа Go должна начинаться с объявления пакета.Пакеты - это способ организации и повторного использования кода в Go. Есть два типа программ Go: исполняемые файлы и библиотеки. Исполняемые приложения - это программы, которые мы можем запускать прямо из терминала. (в Windows они заканчиваются на .exe ) Библиотеки - это наборы кода, которые мы упаковываем вместе, чтобы мы могли использовать их в других программах. Позже мы рассмотрим библиотеки более подробно, а пока просто не забудьте включить эту строку в любую программу, которую вы пишете.

Следующая строка - пустая.Компьютеры представляют символы новой строки специальным символом (или несколькими символами). Новые строки, пробелы и табуляции называются пробелами (потому что вы их не видите). Go в основном не заботится о пробелах, мы используем их, чтобы программы было легче читать. (Вы можете удалить эту строку, и программа будет вести себя точно так же)

Тогда мы видим это:

 import "fmt" 

Ключевое слово import используется для включения кода из других пакетов в нашу программу. Пакет fmt (сокращение от format) реализует форматирование для ввода и вывода.Учитывая то, что мы только что узнали о пакетах, как вы думаете, что файлы пакета fmt будут содержать вверху?

Обратите внимание, что fmt выше заключено в двойные кавычки. Подобное использование двойных кавычек известно как «строковый литерал», который является типом «выражения». В Go строки представляют собой последовательность символов (букв, цифр, символов,…) определенной длины. Строки описаны более подробно в следующей главе, но сейчас важно помнить, что за открывающим символом " в конечном итоге должен следовать другой символ " , и все, что находится между ними, включается в строку. .(Символ " сам по себе не является частью строки)

Строка, начинающаяся с // , называется комментарием. Комментарии игнорируются компилятором Go и предназначены для вас (или того, кто собирает исходный код вашей программы). Go поддерживает два разных стиля комментариев: комментарии // , в которых весь текст между // и концом строки является частью комментария, и комментарии / * * / , где все между * s является частью комментария.(И может включать несколько строк)

После этого вы увидите объявление функции:

 func main () {
    fmt.Println ("Привет, мир")
} 

Функции - это строительные блоки программы Go. У них есть входы, выходы и последовательность шагов, называемых операторами, которые выполняются по порядку. Все функции начинаются с ключевого слова func , за которым следует имя функции ( main в данном случае), список из нуля или более «параметров», окруженных круглыми скобками, необязательный тип возвращаемого значения и «тело», окруженное фигурными скобками.Эта функция не имеет параметров, ничего не возвращает и имеет только одну инструкцию. Имя main является особенным, потому что это функция, которая вызывается при выполнении программы.

Последняя часть нашей программы - это строка:

 fmt.Println ("Hello World") 

Это заявление состоит из трех компонентов. Сначала мы обращаемся к другой функции внутри пакета fmt , называемой Println (это часть fmt.Println , Println означает строку печати).Затем мы создаем новую строку, содержащую Hello World , и вызываем (также называемую вызовом или выполнением) эту функцию со строкой в ​​качестве первого и единственного аргумента.

К этому моменту мы уже видели много новой терминологии, и вы можете быть немного ошеломлены. Иногда полезно целенаправленно прочитать вашу программу вслух. Одно чтение только что написанной программы может выглядеть так:

Создайте новую исполняемую программу, которая ссылается на библиотеку fmt и содержит одну функцию с именем main .Эта функция не принимает аргументов, ничего не возвращает и выполняет следующие действия: обращается к функции Println , содержащейся внутри пакета fmt , и вызывает ее, используя один аргумент - строку Hello World .

Реальную работу в этой программе выполняет функция Println . Вы можете узнать об этом больше, набрав в своем терминале следующее:

 godoc fmt Println 

Среди прочего вы должны увидеть это:

 Println форматирует, используя форматы по умолчанию для своих операндов и записывает в стандартный вывод.Между операндами всегда добавляются пробелы и добавляется новая строка. Он возвращает количество записанных байтов и все обнаруженные ошибки записи. 

Go - очень хорошо документированный язык программирования, но эту документацию может быть сложно понять, если вы уже не знакомы с языками программирования. Тем не менее, команда godoc чрезвычайно полезна и является хорошей отправной точкой, когда у вас есть вопрос.

Возвращаясь к рассматриваемой функции, эта документация сообщает вам, что функция Println отправит все, что вы ей передадите, на стандартный вывод - имя вывода терминала, в котором вы работаете.Эта функция вызывает отображение Hello World .

В следующей главе мы рассмотрим, как Go хранит и представляет такие вещи, как Hello World , узнавая о типах.

Проблемы

  • Что такое пробелы?

  • Что за комментарий? Какими двумя способами можно написать комментарий?

  • Наша программа началась с пакета main . С чего бы начинались файлы в пакете fmt ?

  • Мы использовали функцию Println , определенную в пакете fmt .Если бы мы хотели использовать функцию Exit из пакета os , что нам нужно было бы сделать?

  • Измените написанную нами программу так, чтобы вместо печати Hello World она печатала Привет, меня зовут , за которым следует ваше имя.

Golang - Пример «привет, мир» - CodingBee

После того, как вы установили Golang и настроили рабочее пространство, вы готовы написать свою программу hello world go. Ваш код Go должен быть записан в папке src, а файл должен иметь расширение «.go 'расширение. Итак, я создал следующий файл:

Объявление

Вы можете найти все мои последние сообщения на medium .

$ cat hello.go
основной пакет

// это комментарий.
импорт "FMT"


func main () {
    fmt.Println ("привет, мир")
}
 

Есть 2 типа проектов Go, которые вы можете создавать. Один из них - проект общей библиотеки, который представляет собой код, который используется как часть других проектов Golang. Во втором случае конечным продуктом проекта Golang является автономный исполняемый двоичный файл.

Основной пакет сообщает Golang, что этот проект будет создавать автономный исполняемый двоичный файл. Затем мы объявили функцию под названием «main». Вы можете выбрать, что вызывать вашу функцию, однако название функции «main» имеет особое значение в Golang, оно сообщает Golang, какой блок кода будет выполнен первым при вызове двоичного файла. Двоичный код завершается после завершения выполнения кода в основной функции.

Golang имеет встроенный набор пакетов.Эта коллекция известна как стандартная библиотека.

В нашем примере мы вызвали другую функцию под названием «Println». Println - это в основном функция, которая выводит содержимое на стандартный вывод. Эта функция определена внутри пакета fmt. fmt - один из стандартных пакетов библиотеки. Объявление импорта - это то, как мы загружаем пакет fmt, чтобы мы могли вызывать его функцию в нашем коде.

Теперь мы можем протестировать наш код, запустив:

$ go, запустите hello.go
Привет, мир
 

Эта команда «запустить» выполняла ряд задач за кулисами.Сначала он создал двоичный файл из нашего кода, выполнил этот двоичный файл, а затем удалил этот двоичный файл.

Теперь, когда все заработало, давайте создадим двоичный файл. Сначала нам нужно установить переменную GOBIN, которая сообщает Golang, где хранить двоичный конечный продукт:

$ export GOBIN = "$ GOPATH / bin"
 

Затем, находясь в папке src, выполните команду установки:

$ go установить hello.go
 

Это заканчивается компиляцией двоичного файла и его сохранением в папке GOBIN:

$ echo $ ГОБИН
/ корень / go_project / bin
$ ll $ ГОБИН
всего 1968
-rwxr-xr-x.1 root root 2011612 12 августа 01:30 привет
$ файл / корень / go_project / bin / привет
/ root / go_project / bin / hello: 64-разрядный исполняемый файл LSB ELF, x86-64, версия 1 (SYSV), статически связанный, без удаления

 

Теперь мы можем запустить автономный двоичный файл:

$ / корень / go_project / bin / привет
Привет, мир
 

Нам нужно было указать полный путь к двоичному файлу, но если вы хотите запустить этот двоичный файл, как любую другую команду, просто переместите его в одну из папок, указанных в переменной среды PATH.

Язык программирования Hello World Go

Мы начнем изучать язык программирования Go с написания простой программы Hello World.

Написание вашей первой программы Go

Сначала выберите локальный рабочий каталог. Я создал на своем компьютере папку с именем golangexamples .

Создайте файл с именем hello_world.go .

.go Расширение файла, используемое для представления файлов исходного кода на языке go.

Скопируйте и вставьте приведенную ниже программу hello world, которая напечатает «Hello! World »в командной строке.

  пакет основной

импорт "FMT"
func main () {
    fmt.Println ("Привет! Мир")
}
  

Не паникуйте, если вы ничего не понимаете, это нормально. Вы собираетесь учиться.

Запуск программы Go

Теперь запустим нашу программу с помощью команды go run .

  иди, беги hello_world.go
  

УДАЛ! Я получил ошибку ниже.

  CreateFile hello_world.go: Система не может найти указанный файл.
  

Даже если вы получаете указанную выше ошибку, поздравляю, это ваша первая программная ошибка.

Почему у меня выше CreateFile go Система не может найти указанный файл. Ошибка - мой исходный код находится в папке golangexamples.

И я выполнил команду в какой-то другой папке, поэтому команда go run не смогла найти файл hello_world.go вернула указанную выше ошибку.

Перейдите в папку с исходным кодом и снова выполните указанную выше команду.

 > беги, hello_world.go
Привет, мир
  

Или вы можете передать полный относительный путь к файлу исходного кода команде go run для запуска программы.

 > D: \> запустите Blogging \ goposts \ golangExamples \ golangexamples \ hello_world.go
Привет, мир
  

Скомпилировать программу Go в исполняемый двоичный файл

Если вы хотите встроить свою программу Go в исполняемый двоичный файл, используйте команду go build .

 > иди сборка hello_world.go
  

Если все в порядке, то вы должны увидеть исполняемый двоичный файл в той же папке, что и исходный код.

 > дерево / ж
Д :.hello_world.exe
    hello_world.go
    README.md

  

Теперь мы можем напрямую запустить сгенерированный исполняемый двоичный файл.

 > hello_world.exe
Привет, мир
  

Go lang «Hello, world» в Mac OS X

Это пример приложения Go для "Hello, world".

1) получите установочный пакет "Apple OS X" со страницы загрузки.
https://golang.org/dl/

2) Установите gox.x.x.darwin-amd64.pkg на свой Mac.

3) создать каталог кода и установить $ GOPATH

$ mkdir ~ / gocode
$ echo 'export GOPATH = $ HOME / gocode' >> ~ /.bashrc
$ source $ HOME / .bashrc
 

4) сделать «Привет, мир».

 $ mkdir -p ~ / gocode / src / привет
$ cd ~ / gocode / src / привет
$ emacs hello.go
основной пакет

импорт "FMT"

func main () {
 fmt.Printf ("Привет, мир. \ n")
}

$ go install
$ tree ~ / gocode
/ Пользователи / yako / gocode
├── мусорное ведро
│ └── привет
└── src
    └── привет
        └── hello.go

3 каталога, 2 файла

$ $ GOPATH / bin / привет
Привет, мир.
 

5) сделать библиотеку.

 $ mkdir ~ / gocode / src / stringutil
$ cd ~ / gocode / src / stringutil
$ emacs reverse.go
// Пакет stringutil содержит служебные функции для работы со строками.пакет stringutil

// Реверс возвращает строку аргументов, перевернутую по рунам слева направо.
func Reverse (s string) string {
 r: = [] руна (и)
 для i, j: = 0, len (r) -1; я 

6) сделайте обратный тест.

 $ cd ~ / gocode / src / stringutil
$ emacs reverse_test.go
пакет stringutil

импортное "тестирование"

func TestReverse (t * testing.T) {
case: = [] struct {
в, хочу строку
} {
{"Привет, мир", "dlrow, olleH"},
{"Привет,", "界 世, olleH"},
{"", ""},
}
for _, c: = range case {
получил: = Обратный (c.in)
if got! = c.want {
т.Errorf ("Обратный (% q) ==% q, хочу% q", c.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

2021 © Все права защищены. Карта сайта