Базовый синтаксис языка 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("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 может быть выполнена с помощью+реализации:
Пример
import "fmt"
func main() {
fmt.Println("Google" + "Example")
}
Вывод приведенного выше примера:
GoogleExample
Ключевые слова
Ниже перечислены 25 ключевых слов или зарезервированных слов, которые будут использоваться в коде Go:
| break | default | func | interface | select |
| case | defer | go | map | struct |
| chan | else | goto | package | switch |
| const | fallthrough | if | range | type |
| continue | for | import | return | var |
В дополнение к ключевым словам, представленным выше, в языке 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 |
| 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
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
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
Для получения дополнительной информации см.:
Другие расширения