Базовый синтаксис языка Go

В предыдущей главе мы изучили базовый состав и структуру языка Go. В этой главе мы изучим базовый синтаксис языка Go.


Токены Go

Программа на Go может состоять из нескольких токенов, которые могут быть ключевыми словами, идентификаторами, константами, строками и символами. Например, следующая инструкция Go состоит из 6 токенов:

fmt.Println("Hello, World!")

6 токенов (по одному в строке):

1. fmt
2. .
3. Println
4. (
5. "Hello, World!"
6. )

Разделитель строк

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

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

Ниже приведены две инструкции:

fmt.Println("Hello, World!")
fmt.Println("Example: example.com")

Комментарии

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

Однострочные комментарии — наиболее распространённая форма комментариев. Вы можете использовать однострочные комментарии, начинающиеся с //, в любом месте. Многострочные комментарии, также называемые блочными комментариями, все начинаются с /* и заканчиваются */. Например:

// 单行注释
/*
 Author by Example
 我是多行注释
 */

Идентификаторы

Идентификаторы используются для именования сущностей программы, таких как переменные и типы. Идентификатор — это фактически последовательность, состоящая из одной или нескольких букв (A~Z и a~z), цифр (0~9) и знаков подчёркивания _, но первый символ должен быть буквой или знаком подчёркивания и не может быть цифрой.

Ниже приведены допустимые идентификаторы:

mahesh   kumar   abc   move_name   a_123
myname50   _temp   j   a23b9   retVal

Ниже приведены недопустимые идентификаторы:

  • 1ab (начинается с цифры)
  • case (ключевое слово языка Go)
  • a+b (операторы не допускаются)

Конкатенация строк

Конкатенация строк в Go может быть выполнена с помощью+реализации:

Пример

package main
import "fmt"
func main() {
    fmt.Println("Google" + "Example")
}

Вывод приведенного выше примера:

GoogleExample

Ключевые слова

Ниже перечислены 25 ключевых слов или зарезервированных слов, которые будут использоваться в коде Go:

breakdefaultfuncinterfaceselect
casedefergomapstruct
chanelsegotopackageswitch
constfallthroughifrangetype
continueforimportreturnvar

В дополнение к ключевым словам, представленным выше, в языке Go также есть 36 предопределённых идентификаторов:

append bool байт cap close сложная complex64 complex128 uint16
copy false float32 float64 imag int int8 int16 uint32
int32 int64 iota len make новый nil panic uint64
print println real recover string истина uint uint8 uintptr

Программа обычно состоит из ключевых слов, констант, переменных, операторов, типов и функций.

Программа может использовать следующие разделители: круглые скобки (), квадратные скобки [] и фигурные скобки {}.

Программа может использовать эти знаки препинания:.、,、;、:и…。


Пробельные символы в Go

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

В Go объявления переменных должны разделяться пробелами, например:

var x int
const Pi float64 = 3.14159265358979323846

Использование пробелов между операторами и операндами может сделать программу более удобной для чтения:

Без пробелов:

fruit=apples+oranges;

Добавление пробелов между переменными и операторами делает программу более красивой, например:

fruit = apples + oranges; 

Пробелы следует использовать между ключевыми словами и выражениями.

Например:

if x > 0 {
    // do something
}

При вызове функции пробелы следует использовать между именем функции и знаком равенства слева, а также между параметрами.

Например:

result := add(2, 3)

Форматирование строки

В языке Go используйтеfmt.Sprintfилиfmt.Printf, чтобы отформатировать строку и присвоить её новой строке:

  • SprintfСоздаёт форматированную строку в соответствии с параметрами форматирования и возвращает строку.
  • PrintfСоздаёт форматированную строку в соответствии с параметрами форматирования и записывает её в стандартный вывод.

Пример Sprintf

package main

import (
    "fmt"
)

func main() {
   // %d обозначает целое число, %s обозначает строку
    var stockcode=123
    var enddate="2020-12-31"
    var url="Code=%d&endDate=%s"
    var target_url=fmt.Sprintf(url,stockcode,enddate)
    fmt.Println(target_url)
}

Результат вывода:

Code=123&endDate=2020-12-31

Пример Printf

package main

import (
    "fmt"
)

func main() {
   // %d обозначает целое число, %s обозначает строку
    var stockcode=123
    var enddate="2020-12-31"
    var url="Code=%d&endDate=%s"
    fmt.Printf(url,stockcode,enddate)
}

Результат вывода:

Code=123&endDate=2020-12-31

Для получения дополнительной информации см.:

Другие расширения