Вопросы с тегом «go»

Go - это язык программирования с открытым исходным кодом. Он имеет статическую типизацию, с синтаксисом, свободно полученным из C, с добавлением автоматического управления памятью, безопасностью типов, некоторыми возможностями динамической типизации, дополнительными встроенными типами, такими как массивы переменной длины (называемые слайсами) и карты значений ключей, и большая стандартная библиотека.

7
Как скомпилировать программу Go, состоящую из нескольких файлов?
У меня есть небольшая программа, состоящая из трех файлов, принадлежащих одному пакету (главному), но когда я делаю «go build main.go», сборка не выполняется. Когда это был всего один файл (main.go), все работало нормально. Теперь, когда я приложил некоторые усилия, чтобы разделить код, похоже, что компилятор не может найти материал, который …

6
Как получить доступ к аргументам командной строки, переданным программе Go?
Как получить доступ к аргументам командной строки в Go? Они не передаются в качестве аргументов main. Полная программа, возможно, созданная путем связывания нескольких пакетов, должна иметь один пакет с именем main с функцией func main() { ... } определены. Функция main.main () не принимает аргументов и не возвращает значения.
88 go 

4
Как не маршалировать пустую структуру в JSON с помощью Go?
У меня есть такая структура: type Result struct { Data MyStruct `json:"data,omitempty"` Status string `json:"status,omitempty"` Reason string `json:"reason,omitempty"` } Но даже если экземпляр MyStruct полностью пуст (то есть все значения по умолчанию), он сериализуется как: "data":{} Я знаю, что в документации по кодировке / json указано, что "пустыми" полями являются: …
88 json  go 

4
Как сравнить строки в GoLang?
Я не могу дать «истинный» результат, когда дело доходит до сравнения строк Go. Я написал следующее, чтобы объяснить проблему, и приложил снимок экрана с результатами. // string comparison in Go package main import "fmt" import "bufio" import "os" func main() { var isLetterA bool fmt.Println("Enter the letter a") reader := …
88 go 

2
Как выполнять деление в го
Я пытаюсь выполнить простое деление в Go. fmt.Println(3/10) Это печатает 0 вместо 0,3. Это как-то странно. Может ли кто-нибудь поделиться, в чем причина этого? я хочу выполнять различные арифметические операции в Go. Благодарность

4
Получение метки времени Unix на языке Go (текущее время в секундах с начала эпохи)
У меня есть код, написанный на Go, который я пытаюсь обновить для работы с последними еженедельными сборками. (Последний раз строился под r60). Теперь все работает, кроме следующего бита: if t, _, err := os.Time(); err == nil { port[5] = int32(t) } Есть какие-нибудь советы о том, как обновить это …
88 unix  timestamp  go 

1
Каковы основные различия между gc и gccgo?
Каковы основные различия между двумя популярными компиляторами Go, gc и gccgo? Построить производительность? Производительность во время выполнения? Параметры командной строки? Лицензирование? Я не ищу мнения о том, что лучше, а просто краткий обзор их различий, чтобы я мог решить, что лучше всего подходит для моих нужд.
88 go  gccgo 

5
Можно ли иметь вложенные шаблоны в Go с помощью стандартной библиотеки?
Как мне получить вложенные шаблоны, такие как Jinja, во время выполнения Python. TBC я имею в виду, как получить набор шаблонов, унаследованных от базовых шаблонов, просто заполнив их блоками, как это делает Jinja / django-templates. Возможно ли использование только html/templateв стандартной библиотеке. Если это невозможно, каковы мои альтернативы. Усы, кажется, …

6
Добавить в файл в Go
Итак, я могу читать из локального файла вот так: data, error := ioutil.ReadFile(name) И я могу записать в локальный файл ioutil.WriteFile(filename, content, permission) Но как я могу добавить в файл? Есть ли встроенный метод?
87 file-io  go 


6
Почему Go не допускает объявления вложенных функций (функций внутри функций)?
Изменить: если было неясно, о чем я спрашивал: какие проблемы можно смягчить, запретив декларации вложенных функций? Лямбды работают должным образом: func main() { inc := func(x int) int { return x+1; } } Однако следующее объявление внутри объявления не допускается: func main() { func inc(x int) int { return x+1; …


2
Что именно делает runtime.Gosched?
В версии, предшествующей выпуску go 1.5 веб-сайта Tour of Go , есть фрагмент кода, который выглядит следующим образом. package main import ( "fmt" "runtime" ) func say(s string) { for i := 0; i < 5; i++ { runtime.Gosched() fmt.Println(s) } } func main() { go say("world") say("hello") } Результат …
86 concurrency  go 

8
Как проверить эквивалентность карт в Голанге?
У меня есть тестовый пример, управляемый таблицей, вроде этого: func CountWords(s string) map[string]int func TestCountWords(t *testing.T) { var tests = []struct { input string want map[string]int }{ {"foo", map[string]int{"foo":1}}, {"foo bar foo", map[string]int{"foo":2,"bar":1}}, } for i, c := range tests { got := CountWords(c.input) // TODO test whether c.want == …

1
Количество элементов в канале
Как измерить количество элементов в канале, используя буферизованный канал? Например, я создаю и отправляю такой канал: send_ch := make(chan []byte, 100) // code send_ch <- msg Я хочу измерить, сколько сообщений находится в канале send_ch . Я знаю, что из-за параллелизма измерение не будет точным, поскольку между измерением и действием …
86 go 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.