Re: [golang-ru] Синтаксис объявления среза

瀏覽次數:69 次
跳到第一則未讀訊息

Dmitry Vyukov

未讀,
2015年3月3日 凌晨4:54:132015/3/3
收件者:gola...@googlegroups.com
2015-03-03 12:50 GMT+03:00 <forwo...@gmail.com>:
> Сейчас читал рассматривал примеры из заметки "Кратный пересказ Эффективный
> Go", не понял один из примеров, поясните пожалуйста:
>
> func Sum(a *[3]float) (sum float) {
> for _, v := range a {
> sum += v
> }
> return
> }
>
> array := [...]float{7.0, 8.5, 9.1};
> x := sum(&array); // Обратите внимание на явное взятие адреса массива.
>
> Что значат 3 точки при объявлении и инициализации среза?


Это не срез, а массив. Три точки собственно и позволяют объявить
массив, а не срез. Обычно при создании массива нужно явно указывать
размер: [5]int. Но если мы создаем массив из литерала, то три точки
позволяют автоматически определить размер исходя из литерала - сколько
элементов в литерале, такой и размер массива.
回覆所有人
回覆作者
轉寄
0 則新訊息