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

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

12
Как уменьшить размер скомпилированного файла?
Давайте сравним c и пойдем: Hello_world.c: #include<stdio.h> int main(){ printf("Hello world!"); } Hello_world.go: package main import "fmt" func main(){ fmt.Printf("Hello world!") } Скомпилируйте оба: $gcc Hello_world.c -o Hello_c $8g Hello_world.go -o Hello_go.8 $8l Hello_go.8 -o Hello_go и что это? $ls -ls ... 5,4K 2010-10-05 11:09 Hello_c ... 991K 2010-10-05 11:17 …
84 go 

5
Почему в обработчиках HTTP на Go ResponseWriter - значение, а указатель - Request?
Я изучаю Go, написав приложение для GAE, и это подпись функции обработчика: func handle(w http.ResponseWriter, r *http.Request) {} Я новичок в указателе, так почему же Requestобъект является указателем, а ResponseWriterне указателем ? Есть ли необходимость в этом или это просто для того, чтобы сделать возможным какой-то усовершенствованный код, основанный на …
84 pointers  go 

5
Несколько горутин прослушивают один канал
У меня есть несколько горутин, которые пытаются получить одновременно на одном канале. Похоже, что последняя горутина, которая начинает получать на канале, получает значение. Это где-то в спецификации языка или это неопределенное поведение? c := make(chan string) for i := 0; i < 5; i++ { go func(i int) { <-c …
84 go 

5
Как распечатать значение указателя объекта Go? Что означает значение указателя?
Я просто играю с Go и еще не имею хорошей мысленной модели того, когда структуры передаются по значению или по ссылке. Это может быть очень глупый вопрос, но я просто хочу немного поэкспериментировать и посмотреть, работаю ли я над тем же объектом или я сделал его копию (передал по значению). …
83 go 

4
Получение возвращаемых значений из горутин
Приведенный ниже код дает ошибку компиляции, говорящую о неожиданном запуске: x := go doSomething(arg) func doSomething(arg int) int{ ... return my_int_value } Я знаю, что могу получить возвращаемое значение, если вызову функцию как обычно, без использования горутины. Или я могу использовать каналы и т. Д. У меня вопрос, почему невозможно …


1
Go не связывает мою сборку: неопределенная внешняя функция
Я пытаюсь написать немного SIMD в основном для учебных целей. Я знаю, что Go может связывать сборку, но я не могу заставить его работать правильно. Вот самый простой пример, который я могу сделать (поэлементное умножение векторов): vec_amd64.s (примечание: под фактическим файлом стоит пробел, RETиначе он вызывает ошибки) // func mul(v1, …
82 assembly  go 

8
перемешать массив в Go
Я попытался перевести следующий код Python на Go import random list = [i for i in range(1, 25)] random.shuffle(list) print(list) но моя версия Go показалась мне длинной и неудобной, потому что здесь нет функции перемешивания, и мне пришлось реализовать интерфейсы и преобразовать типы. Какой была бы идиоматическая версия моего кода …
82 arrays  go 

8
Как проверить, закрыт канал или нет, не читая его?
Это хороший пример режима рабочих и контроллеров в Go, написанный @Jimt в ответ на вопрос « Есть ли какой-нибудь элегантный способ приостановить и возобновить любую другую горутину в golang? » package main import ( "fmt" "runtime" "sync" "time" ) // Possible worker states. const ( Stopped = 0 Paused = …
82 go  channel 


2
Получение объединения двух карт на ходу
У меня есть рекурсивная функция, которая создает объекты, представляющие пути к файлам (ключи - это пути, а значения - информация о файле). Это рекурсивно, поскольку предназначено только для обработки файлов, поэтому, если обнаружен каталог, функция рекурсивно вызывается в каталоге. Все, что было сказано, я хотел бы сделать эквивалент объединения наборов …
81 map  go  union 

4
Нулевое значение в Go
Как выразить в Go "нулевое" значение? type Node struct { next *Node data interface{} } И я хочу сказать return &Node{ data: NULL, next: NULL }
80 go 

2
Что означает подчеркивание и имя интерфейса после ключевого слова var?
Из http://golang.org/src/pkg/database/sql/driver/types.go : type ValueConverter interface { // ConvertValue converts a value to a driver Value. ConvertValue(v interface{}) (Value, error) } var Bool boolType type boolType struct{} var _ ValueConverter = boolType{} // line 58 func (boolType) String() string { return "Bool" } func (boolType) ConvertValue(src interface{}) (Value, error) {....} …

1
Как установить переменную среды GOPRIVATE
Я начал работать над Goпроектом, и он использует некоторые приватные модули из частных репозиториев Github, и всякий раз, когда я пытаюсь его запустить, go run main.goвыдается следующее сообщение 410 Goneоб ошибке: проверка github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod: github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod: чтение https: //sum.golang. org/lookup/github.com/!repoURL/go-proto@v2.86.0+совместимо : 410 Gone Я могу легко клонировать приватное репо из терминала, что …

1
Что означает «горячий путь» в контексте sync.Once?
go version: 1.13.4 В исходном коде sync / once.go в следующих комментариях упоминается «горячий путь»: type Once struct { // done indicates whether the action has been performed. // It is first in the struct because it is used in the hot path. // The hot path is inlined at …
14 go 

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