понедельник, 3 июня 2019 г.

Спецификация Go: объявления переменных

Объявление переменной (variable declaration) создает одну или несколько переменных, связывает с ними соответствующие идентификаторы и присваивает каждому тип и начальное значение.

VarDecl = "var" ( VarSpec | "(" { VarSpec ";" } ")" ) .
VarSpec = IdentifierList ( Type [ "=" ExpressionList ] | "=" ExpressionList ) .

var i int
var U, V, W float64
var k = 0
var x, y float32 = -1, -2
var (
  i       int
  u, v, s = 2.0, 3.0, "bar"
)
var re, im = complexSqrt(-1)

// поиск по карте (map); заитересованность только в "found"
var _, found = entries[name]  

Если указан список выражений, переменные инициализируются с выражениями в соответствии с правилами для назначений. В противном случае каждая переменная инициализируется своим нулевым значением.

Если тип присутствует, каждой переменной присваивается этот тип. В противном случае каждой переменной присваивается тип соответствующего значения инициализации в присваивании. Если это значение является не типизированной константой, оно сначала неявно преобразуется в тип по умолчанию; если это не типизированное логическое значение, оно сначала неявно преобразуется в тип bool. Предварительно объявленное значение nil нельзя использовать для инициализации переменной без явного типа.

var d = math.Sin(0.5)  // d это float64
var i = 42             // i это int
var t, ok = x.(T)      // t это T, ok это bool
var n = nil            // недопустимо

Ограничение реализации: компилятор может сделать недопустимым объявление переменной внутри тела функции, если переменная никогда не используется.


Читайте также:


Комментариев нет:

Отправить комментарий