✏️Шпаргалка по синтаксису GoLang
Основы
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
Переменные
var a int = 10
var b = 20
c := 30
Константы
const Pi = 3.14
Функции
func add(x int, y int) int {
return x + y
}
Условные операторы
if x > y {
fmt.Println("x is greater than y")
} else {
fmt.Println("x is less than or equal to y")
}
Циклы
for i := 0; i < 10; i++ {
fmt.Println(i)
}
Массивы
var arr [5]int
arr[0] = 1
Срезы
s := []int{1, 2, 3}
s = append(s, 4)
Карты (Maps)
m := make(map[string]int)
m["one"] = 1
Структуры
type Person struct {
Name string
Age int
}
p := Person{Name: "Alice", Age: 30}
Методы
func (p Person) greet() {
fmt.Println("Hello, my name is", p.Name)
}
Интерфейсы
type Speaker interface {
Speak() string
}
type Dog struct{}
func (d Dog) Speak() string {
return "Woof!"
}
Горутины
go func() {
fmt.Println("Hello from goroutine")
}()
Каналы
ch := make(chan int)
go func() {
ch <- 1
}()
val := <-ch
Эта шпаргалка охватывает основные элементы синтаксиса GoLang. Если у вас есть конкретные вопросы или требуется более детальная информация, пожалуйста, дайте знать!
Как обойти массив через range?
В GoLang вы можете использовать цикл range
для обхода элементов массива, среза, карты или строки. Вот пример, как это сделать для массива:
package main
import "fmt"
func main() {
arr := [5]int{10, 20, 30, 40, 50}
for index, value := range arr {
fmt.Printf("Index: %d, Value: %d\n", index, value)
}
}
В этом примере:
index
получает индекс текущего элемента массива.value
получает значение текущего элемента массива.
Если вам не нужен индекс, вы можете использовать символ подчеркивания _
:
for _, value := range arr {
fmt.Printf("Value: %d\n", value)
}
Таким образом, вы можете обойти массив и работать только с его значениями.
Как обойти ассоциативный массив?
В GoLang ассоциативные массивы называются картами (maps). Вы можете использовать цикл range
для обхода элементов карты. Вот пример:
package main
import "fmt"
func main() {
// Создаем карту с ключами типа string и значениями типа int
m := map[string]int{
"Alice": 30,
"Bob": 25,
"Carol": 35,
}
// Обходим карту с помощью range
for key, value := range m {
fmt.Printf("Key: %s, Value: %d\n", key, value)
}
}
В этом примере:
key
получает ключ текущего элемента карты.value
получает значение текущего элемента карты.
Если вам не нужен ключ, вы можете использовать символ подчеркивания _
:
for _, value := range m {
fmt.Printf("Value: %d\n", value)
}
Таким образом, вы можете обойти карту и работать только с ее значениями.
Как обойти строку посимвольно?
В GoLang вы можете использовать цикл range
для обхода строки посимвольно. Вот пример:
package main
import "fmt"
func main() {
str := "Hello, World!"
for index, char := range str {
fmt.Printf("Index: %d, Character: %c\n", index, char)
}
}
В этом примере:
index
получает индекс текущего символа в строке.char
получает значение текущего символа в виде руны (rune), что позволяет корректно обрабатывать многобайтовые символы Unicode.
Если вам не нужен индекс, вы можете использовать символ подчеркивания _
:
for _, char := range str {
fmt.Printf("Character: %c\n", char)
}
Таким образом, вы можете обойти строку и работать только с ее символами.
Last updated