Как в Go lang определить является ли строка числом

Является ли строка числом? Достаточно частая задача для тех, кому приходят данные от пользователя в виде строк, но для последующей обработки их нужно провалидировать и конвертировать. Использовать для этого можно функцию Atoi из пакета strconv: if _, err := strconv.Atoi(v); err == nil { fmt.Printf(«%q looks like a number.\n», v) }

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

Работа с регулярками в Go lang выглядит весьма любопытно. Для начала нужно скомпилировать регулярное выражение: regexp, err = regexp.Compile(`expression`) if err != nil { panic(err) } Обратите внимание каким символом обёрнуто правило вместо кавычек или апострофа. Теперь можно работать со скомпилированным выражением: match := randomRegexp.FindStringSubmatch(mysting) В переменной math будет массив […]

Как в 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] Если нужна большая […]

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

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

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

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

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

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