Go (также Golang) – компилируемый ЯП, был создан в Google в 2007 году, и с тех пор инженерные группы Google используют Go для создания продуктов и услуг в массовом масштабе. Официально представленный в 2009 году. Он предназначен для создания высокоэффективных программ, рассчитанных на многоядерные и многопроцессорные компьютеры.
Для проверки установлен ли компилятор в командной строке пишем и запускаем go version , если языка нет то идет качать на оф сайт https://go.dev/dl/ и устанавливаем подходящий пакет с ГО.
Далее идет код, а ниже объяснения:
…
package main
import ("fmt"
"math/rand"
"time"
"strings"
)
func main(){
hi()
color()
iterations()
guessNumber()
msg := "Ya;HochY;PereadTT"
messages(msg)
}
func hi() {
var x string = "Hello your's ver 2! \nline 2 \ni tebe privet"
println(x)
}
func color() {
color := "red"
if color == "red" {
println("your color red")
} else {
println("color not found")
}
println("finish color")
}
func iterations(){
pr := "ix"
for i :=0; i<10; i++ {
number := rand.Intn(5)
println("p+i", pr, i, number)
}
}
func guessNumber(){
println("starting GuessNumber")
count := 0
guess := -1
rand.Seed(time.Now().UnixNano())
number := rand.Intn(10)
guess = number // for the game comment out
println(number)
for count < 3 && guess != number {
fmt.Print("Guess the number (0..9): ")
fmt.Scanln(&guess)
if guess != number {
if guess < number {
fmt.Println("Your number is less")
} else {
fmt.Println("Your number is bigger")
}
count++
}
}
if guess == number{
fmt.Println("Your win! number =", number)
} else {
fmt.Println("Your lose! number =", number)
}
}
func messages(mess string) {
println(mess)
println(strings.ToUpper(mess))
println(strings.ToLower(mess))
resp := strings.Split(strings.ToLower(mess), ";")
println(resp[2])
}
package main — первая строка каждого файла должна содержать имя пакета, в котором мы работаем.
import ( … ) -импортирование пакетов
«fmt» — для форматированного вывода строк
«math/rand», — рандом функция из пакета math , для func guessNumber()
«time», для func guessNumber()
«strings» для работы с текстом
func main() — точка входа в программу, стартовая функция
func hi() — функция приветствия содержит текст с переводом строк
Переменная объявляется при помощи ключевого слова var, после имени указывается тип string.
var hi string = «Hello, world!»
Сокращенная версия присваивания «:=» компилятор определяет тип по значению, которое присваивается.
hi := «Hello, world!»
func color() -функция использующая if
if color == «red» — сравниваем переменную с текстом
func iterations() — функция использует оператор for
for i :=0; i<10; i++ { iterations }
func guessNumber() — функция использует связку генератора случайных цифр, цикла for с условием выхода либо число совпало либо количество попыток закончилось
rand.Seed(time.Now().UnixNano()) -что бы последовательность случайных чисел не была одинакова, из-за изолированности Go Playground всегда начинается с одного и того же времени, поэтому этот код не будет работать должным образом. Наиболее часто используемым начальным значением является текущее время, преобразованное в int64 к UnixNanoс
number := rand.Intn(10) — генерим случайное число от 1 до 10
for count < 3 && guess != number {} — заходим в цикл который дает 3 попытки
fmt.Scanln(&guess) — принимаем число. Ждем пока будет введено. Далее сверяем и выдает ответ
func messages(msg) — функция принимает строку и совершает с ней некие действия.
принимаем месседж как строку, дальше печатаем ее большими и маленькими буквами
разбиваем строку на массив по маске и выводим значение в нижнем регистре.
Как запустить код на go? Переходим в папку с кодом в терминале и запускаем команду с названием файла:
go run hello.go