go ×26
Создан 06.01.2025
0
голоса
3
ответов
5107
просмотров
Golang - как отсортировать строку или []byte?

Я ищу функцию, которая может сортировать string или []byte:

"bcad" должен становиться "abcd"
или
[]byte("bcad") должен становиться []byte("abcd")

Строка содержит только буквы, но сортировка также должна работать для букв и чисел.

Я нашел пакет sort, но не нашел нужной функции.

0
голоса
2
ответов
85
просмотров
Получение тега поля структуры с использованием пакета reflect в Go

Заголовок: Как получить значение тега поля структуры в Go, не передавая всю структуру?

Описание проблемы:

В Go есть возможность отражения, и я хотел бы узнать, возможно ли получить доступ к значениям тегов конкретного поля структуры, не передавая всю структуру.

Рассмотрим следующий...

0
голоса
2
ответов
75
просмотров
Какое полное название `iota` в Golang?

Вопрос: Каково полное название для iota в Go (не использование)?

Я хочу понять, что представляет собой iota в языке программирования Go. В приведенном ниже коде мы видим использование iota для создания констант:

const (  // iota сбрасывается на 0
    c0 = iota  // c0 == 0
    c1 =...
0
голоса
1
ответов
75
просмотров
Кто-нибудь может объяснить, почему GOPATH удобен и как его следует использовать в общем?

Я новичок в языке программирования Go, и каждый учебник начинается с настройки переменной окружения GOPATH для текущей папки проекта.

Неужели я что-то упускаю? Разве программист действительно должен вручную настраивать GOPATH каждый раз, когда он переходит в новую папку проекта с помощью команды...

0
голоса
1
ответов
87
просмотров
Можно ли одновременно изменять разные элементы среза?

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

var results = make([]Result, len(jobs))
wg := sync.WaitGroup{}
for i, job := range jobs {
    wg.Add(1)
    go func(i...
0
голоса
2
ответов
81
просмотров
Доступ к полям структуры в значении карты (без копирования)

Проблема с доступом к полям структуры в мапе Go

Предположим, что у нас есть следующий код:

type User struct {
    name string
}

users := make(map[int]User)

users[5] = User{"Steve"}

Я столкнулся с проблемой доступа к полю name у экземпляра структуры, который сейчас хранится в...

0
голоса
1
ответов
78
просмотров
Как преобразовать int64 в int в Go?

Проблема с преобразованием int64 в int в Go

В Go, какая лучшая стратегия для конвертации int64 в int? У меня возникли трудности с сравнением этих двух типов.

Вот пример кода, где я пытаюсь использовать int64 для вычислений:

package main 

import (
    "math"
    "strings"
   ...
0
голоса
1
ответов
82
просмотров
Golang: Как эффективно определить количество строк в файле?

Я ищу эффективный способ подсчитать количество строк в файле на языке Golang.

Конечно, я могу просто пройтись по всему файлу в цикле, но это не кажется очень эффективным подходом.

file, _ := os.Open("/path/to/filename")
fileScanner := bufio.NewScanner(file)
lineCount := 0
for...
0
голоса
3
ответов
71
просмотров
Оптимизация хвостовых вызовов в Go

Проблема: В настоящее время язык программирования Go оптимизирует хвостовые вызовы? Если нет, то хотя бы оптимизирует ли он хвостовые рекурсивные вызовы функции к самой себе?

0
голоса
2
ответов
80
просмотров
Могу ли я иметь несколько директорий GOPATH?

Я установил свой GOPATH в

/Users/me/dev/go

и у меня есть следующие директории:

/Users/me/dev/go/src/client1
/Users/me/dev/go/src/client2
/Users/me/dev/go/src/client3

Также в корневой папке dev находятся следующие...

0
голоса
5
ответов
82
просмотров
Есть ли способ получить доступ к приватным полям структуры из другого пакета?

У меня есть структура в одном пакете, которая имеет приватные поля:

package foo

type Foo struct {
    x int
    y *Foo
}

И в другом пакете (например, в пакете для белобокового тестирования) нужно получить к ним доступ:

package bar

import "../foo"

func change_foo(f *foo.Foo) {
...
0
голоса
1
ответов
76
просмотров
Как получить общий код покрытия для всех пакетов в Go?

У меня есть библиотека, состоящая из нескольких пакетов. При запуске тестов я использую флаг -cover, и он показывает информацию о покрытии для каждого пакета по отдельности. Вот пример вывода:

--- PASS: TestSampleTestSuite (0.00s)
PASS
coverage: 28.7% of statements
ok     ...
6
голоса
5
ответов
90
просмотров
Какой идиоматичный эквивалент тернарного оператора C в Go?

В языках C/C++ (и во многих других языках, принадлежащих к этой семье) распространенным приемом при объявлении и инициализации переменной в зависимости от условия является использование тернарного оператора:

int index = val > 0 ? val : -val

В языке Go нет тернарного оператора. Как наиболее...

5
голоса
5
ответов
87
просмотров
Как присвоить строку массиву байтов

Заголовок: Как преобразовать строку в массив байт в Go?

Текст проблемы:

Я хочу назначить строку массиву байт в Go. У меня есть следующий код:

var arr [20]byte
str := "abc"
for k, v := range []byte(str) {
    arr[k] = byte(v)
}

Однако я ищу другой способ сделать это более эффективно...

5
голоса
5
ответов
89
просмотров
Отформатировать строку в Go без вывода?

Есть ли простой способ форматирования строки в Go без ее вывода на консоль?

Я могу сделать так:

bar := "bar"
fmt.Printf("foo: %s", bar)

Но мне нужно, чтобы отформатированная строка возвращалась, а не выводилась, чтобы я мог работать с ней дальше.

Я мог бы также сделать что-то вроде...

5
голоса
5
ответов
84
просмотров
Как преобразовать массив байтов с нулевым завершением в строку?

Я столкнулся с проблемой чтения массива байтов [100]byte, чтобы передать многострочные данные типа string. Однако не все строки имеют длину ровно 100 символов, и оставшаяся часть массива байтов заполняется нулями (0).

Когда я пытаюсь преобразовать [100]byte в string, используя следующий...

5
голоса
5
ответов
85
просмотров
Как определить тип объекта в Go?

Как узнать тип объекта в Go? В Python я просто использую typeof, чтобы получить тип объекта. Существует ли аналогичный способ сделать это в Go?

Вот код, из которого я итерируюсь:

for e := dlist.Front(); e != nil; e = e.Next() {
    lines := e.Value
   ...
8
голоса
4
ответов
104
просмотров
Как преобразовать int в строку в Go?

Проблема с преобразованием числа в строку в Go

Я столкнулся с проблемой в Go при попытке преобразовать целое число в строку. Вот мой код:

i := 123
s := string(i) 

В результате переменная s содержит символ 'E', но я хочу получить строку "123".

Как я могу получить строку...

6
голоса
5
ответов
152
просмотров
7
голоса
5
ответов
115
просмотров
Существует ли цикл foreach в Go?

Есть ли в языке Go конструкция foreach? Могу ли я итеративно обрабатывать срез или массив, используя for?