Использование аргумента функции (параметра) в постоянном контексте в Go - PullRequest
0 голосов
/ 18 января 2019

Можно ли как-то использовать аргумент функции в постоянном контексте?
Например,

func example(size int) {
  one := [size]int{}  // Error: non-constant array bound 'size' 
  const two = size    // Error: const initializer 'size' is not a constant
}

Не является ли size не эффективной константой в этих случаях?Если нет, то почему?

1 Ответ

0 голосов
/ 18 января 2019

Нет, в Go это невозможно.Константы Go являются конструкциями времени компиляции, а значения параметров существуют только во время выполнения.

Spec: выражения констант:

Выражения констант могут содержать только константы операндов и оцениваются во время компиляции.

Рекомендуемое чтение: Блог Go: Константы

...