Как в Go lang работать с регулярными выражениями

Работа с регулярками в Go lang выглядит весьма любопытно. Для начала нужно скомпилировать регулярное выражение: regexp, err = regexp.Compile(`expression`) if err != nil { panic(err) } Обратите внимание каким символом обёрнуто правило вместо кавычек или апострофа. Теперь можно работать со скомпилированным выражением: match := randomRegexp.FindStringSubmatch(mysting) В переменной math будет массив значений, где нолевым элементом будет вся строка, а последующие — сматченные по маскам. Посмотреть содержание можно так: for index, match := range r.FindStringSubmatch(str) { fmt.Printf("[%d] Read more

Как в Go lang разделить строку на части

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

package main

import (
    "fmt"
    "strings"
)

func main() {
    s := strings.Split("myhost.com:5432", ":")
    ip, port := s[0], s[1]
    fmt.Println(ip, port)
}
(далее…)

Как выбрать случайное значение из slice в Go lang

Нужно использовать функцию Intn из пакета rand, а затем использовать результат её выполнения в качестве индекса слайса. import ( "math/rand" "time" ) reasons := []int8{1, 2, 4, 6, 7, 9] // инициализация глобального генератора псевдослучайных чисел rand.Seed(time.Now().Unix() ) len := len(reasons) rnd := rand.Intn(len) value := reasons[rnd] Если нужна большая защищённость, то можно использовтаь локальный генератор псевдослучайных чисел: s := rand.NewSource(time.Now().Unix()) r := rand.New(s) r.Intn(len(reasons))

Как в Go lang присвоить переменной функцию в качестве значения

Чтобы присвоить переменной анонимную функцию и вызвать её по имени переменной в последующем нужно объявить переменную с типом функции: var f func() (*MyStruct, error) Затем нужно обернуть вызов существующей функции: f = func() (*MyStruct, error) {return anotherFunc(id)} После чего переменную можно использовать как функцию: data, err := f() Причём в данном случае значение id используется в замыкании, а не передаётся в неё напрямую.

Как в Go lang сделать do-while цикл

В большинстве ставших уже классическими языках программирования есть привычная многим конструкция:

do {
	work();
} while(condition);
Которая выполняет оно и то же действие до тех пор, пока не будет выполнено заданное условие. Иногда даже может получиться вечный цикл. Как сделать аналогично в Go lang? (далее…)

Как в Go lang сделать return nil для int параметра

Допустим есть некая функция возвращающая значение в виде целочисленного числа. Но в некотором случае функция не может вернуть какое-либо корректное число и нужно сообщить об этом клиентскому коду. Как быть? (далее…)

Расширенные возможности Laravel Backpack

Laravel Backpack умеет и другие интересные вещи, облегчающие жизнь.

Другие операции

Show — позволяет администраторам просмотреть запись Reorder — позволяет переупорядочить и вложить записи (дерево иерархичности) Revisions — позволяет сохранить запись всех изменений и откатить изменения (далее…)


Любишь мемасики?

Подпишись на мой телеграм-канал!

Открыть
Закрыть