Почему golang использует скобки для среза байтов и скобки для среза строки? - PullRequest
0 голосов
/ 18 февраля 2020

Мне всегда было интересно, почему в golang вы создаете фрагмент байтов, используя скобки:

[]byte("foo")

При создании фрагмента строк, используя скобочную запись:

[]string{"foo", "bar"}

Используются ли круглые скобки только потому, что выражение ожидает единственное значение (например, строка "foo"), и поэтому круглые скобки используются как синтаксис «группировки»?

Примечание: использование «группы» или «группировка» для определения этого поведения, скорее всего, неверна с моей стороны, но у меня нет лучшего слова, чтобы использовать его на макушке.

Я так предположил, потому что golang также используйте скобки в смысле группировки для таких вещей, как утверждение типа i.(T) и для разыменования указателя (*p).z.

1 Ответ

4 голосов
/ 18 февраля 2020

Вы ошибаетесь.

  • []byte("any_string") на самом деле является преобразованием типа из типа string в []byte (тип слайса для байта), а его тип возвращаемого значения []byte.
  • []string{"string0", "string1", ...} на самом деле slice из string s "string0", "string1", ...
...