Есть в PHP хорошая функция для запаковки каких-либо данных в бинарный формат. И с помощью неё можно паковать любые данные, в том числе массивы, с некоторыми ограничениями. Рассмотрим простой пример: php > $a = [1,2,3,4,5,6]; php > $packed = pack(‘c*’, …$a); php > echo strlen($packed); 6
Рубрика: Трудовыебудни
Как в Go lang сделать HTTP-запрос через прокси
Существует несколько способов. Первый — через переменную окружения. Он будет хорош для простых задач и может работать без правки Go-кода. Выполните в bash перед запуском своего приложения: export HTTP_PROXY=»http://proxyIp:proxyPort»
Как в Go lang определить является ли строка числом
Является ли строка числом? Достаточно частая задача для тех, кому приходят данные от пользователя в виде строк, но для последующей обработки их нужно провалидировать и конвертировать. Использовать для этого можно функцию Atoi из пакета strconv: if _, err := strconv.Atoi(v); err == nil { fmt.Printf(«%q looks like a number.\n», v) }
Как в Go lang сделать из строки массив байтов
Ватсон, снова элементарно! bytes = []byte(text)
Как сконвертировать float64 в uint64 в Go lang
Элементарно, Ватсон! n = uint64(f)
Как в 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() Причём в данном […]
Как конвертировать int значение в строку на Go lang
Нужно использовать функцию Itoa из пакета strconv. Например: package main import ( «strconv» «fmt» ) func main() { t := strconv.Itoa(123) fmt.Println(t) }