11. Переменные и константы в Go

Обновлено: 2024-03-12
6 мин

Прежде чем мы перейдем к темам сегодняшнего дня, я хочу выразить огромную благодарность Techworld with Nana и этому фантастическому краткому путешествию по основам Go.

В 8-м дне мы настроили нашу среду, в 9-м дне мы разобрали код Hello #90DaysOfDevOps, а в 10-м дне) мы поработали с нашей рабочей средой Go и немного углубились в компиляцию и запуск кода.

Сегодня мы рассмотрим переменные, константы и типы данных при написании новой программы.

Переменные и константы в Go

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

Первое, что нужно учитывать, это то, что, поскольку мы создаем наше приложение, мы приветствуем наших посетителей и даем пользователям отзывы о количестве дней, которые они выполнили, мы можем использовать термин #90DaysOfDevOps много раз на протяжении всей программы. Это отличный вариант использования переменной #90DaysOfDevOps в нашей программе.

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

Чтобы объявить это в нашей программе Go, мы определяем значение, используя ключевое слово для переменных. Это будет жить в нашем блоке кода func main, который вы увидите позже. Подробнее о Ключевых словах можно узнать здесь.

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

var challenge = "#90DaysOfDevOps"

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

package main

import "fmt"

func main() {
    var challenge = "#90DaysOfDevOps"
    fmt.Println("Welcome to", challenge "")
}

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

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

Добавим const в наш код и добавим еще одну строку кода, чтобы напечатать результат.

package main

import "fmt"

func main() {
    var challenge = "#90DaysOfDevOps"
    const daystotal = 90

    fmt.Println("Welcome to", challenge)
    fmt.Println("This is a", daystotal, "challenge")
}

Если мы затем снова пройдем этот процесс go build и запустим, вы увидите результат.

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

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

package main

import "fmt"

func main() {
    var challenge = "#90DaysOfDevOps"
    const daystotal = 90
    var dayscomplete = 11

    fmt.Println("Welcome to", challenge, "")
    fmt.Println("This is a", daystotal, "challenge and you have completed", dayscomplete, "days")
    fmt.Println("Great work")
}

Давайте снова запустим go build, или вы можете просто использовать go run

Вот несколько других примеров, которые я использовал, чтобы упростить чтение и редактирование кода. До сих пор мы использовали Println, но мы можем упростить это, используя Printf, используя %v, что означает, что мы определяем наши переменные по порядку в конце строки кода. мы также используем \n для разрыва строки.

Я использую %v, поскольку здесь используется значение по умолчанию, но есть и другие параметры, которые можно найти документации пакета fmt.

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

func main() {
    challenge := "#90DaysOfDevOps"
    const daystotal = 90

Типы в Go

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

До сих пор в нашем коде использовались строки и целые числа. Целые числа для количества дней и строки для названия задачи.

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

Есть четыре категории

  • Basic type: в эту категорию попадают числа, строки и логические значения.
  • Aggregate type: к этой категории относятся массивы и структуры.
  • Reference type: в эту категорию попадают указатели, срезы, карты, функции и каналы.
  • Interface type

Тип данных — важная концепция в программировании. Тип данных определяет размер и тип значений переменных.

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

В Go есть три основных типа данных:

  • bool: представляет логическое значение и может быть либо истинным, либо ложным.
  • Numeric: представляет целые типы, значения с плавающей запятой и сложные типы.
  • string: представляет строковое значение.

Я нашел этот ресурс очень подробным о типах данных Golang by example

Я бы также посоветовал Techworld with Nana на этом этапе довольно подробно рассказать о типах данных в Go.

Если нам нужно определить тип в нашей переменной, мы можем сделать это так:

var TwitterHandle string 
var DaysCompleted uint

Поскольку Go принимает переменные, которым задано значение, мы можем распечатать эти значения следующим образом:

fmt.Printf("challenge is %T, daystotal is %T, dayscomplete is %T\n", conference, daystotal, dayscomplete)

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

  • int = целые числа
  • unint = беззнаковые целые числа
  • floating point types = числа с плавающей запятой

Источники

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

Увидимся завтра.