2014-12-17 3 views
3

Я чтение this doc и увидел следующий фрагмент:Непонимание использование: = в Go

The: = синтаксис является сокращением для объявления и инициализации переменной, например, для var f string = "short" в этом случае.

f := "short" 
fmt.Println(f) 

Дело: это только для строк? Или достаточно dymanic, чтобы понять, какой тип данных следует хранить?

И плюс: не то же самое из var f = "short"?

+5

Это не динамический, это «тип вывода» – JimB

+5

Я бы предложил вам спецификации языка закладки. Это хорошее место для изучения, когда у вас есть такие вопросы: https://golang.org/ref/spec#Short_variable_declarations :) – Omie

+0

@ О нас благодарим вас за ссылки на спецификации. : D –

ответ

5

Конечно, это указывает на очевидный тип (ы), возвращаемый выражением справа.

The specification дает такие примеры:

i, j := 0, 10 
f := func() int { return 7 } 
ch := make(chan int) 
r, w := os.Pipe(fd) // os.Pipe() returns two values 
_, y, _ := coord(p) // coord() returns three values; only interested in y coordinate 

Обратите внимание, что это не динамическая: все происходит во время компиляции, тип (ами), дается выражением правой части.

Смежные вопросы