РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1470 of 1593 menu

Функция reflect.MakeChan

Функция reflect.MakeChan создает новый канал с заданным типом и размером буфера. Она принимает два параметра: typ - тип канала, который возвращает функция reflect.ChanOf, и buffer - размер буфера канала. Функция возвращает значение типа reflect.Value, представляющее созданный канал.

Синтаксис

reflect.MakeChan(typ reflect.Type, buffer int) reflect.Value

Пример

Давайте создадим небуферизированный канал для строк:

package main import ( "fmt" "reflect" ) func main() { chanType := reflect.ChanOf(reflect.BothDir, reflect.TypeOf("")) ch := reflect.MakeChan(chanType, 0) fmt.Println(ch.Type()) fmt.Println(ch.IsValid()) }

Результат выполнения кода:

chan string true

Пример

Создадим буферизированный канал для целых чисел:

package main import ( "fmt" "reflect" ) func main() { intType := reflect.TypeOf(0) chanType := reflect.ChanOf(reflect.BothDir, intType) ch := reflect.MakeChan(chanType, 5) fmt.Println(ch.Len()) fmt.Println(ch.Cap()) }

Результат выполнения кода:

0 5

Пример

Продемонстрируем отправку и получение данных через созданный канал:

package main import ( "fmt" "reflect" ) func main() { chanType := reflect.ChanOf(reflect.BothDir, reflect.TypeOf("")) ch := reflect.MakeChan(chanType, 2) msg := reflect.ValueOf("hello") ch.Send(msg) received := ch.Recv() fmt.Println(received.String()) }

Результат выполнения кода:

"hello"

Смотрите также

  • функцию reflect.ChanOf,
    которая создает тип канала с заданным направлением и типом элементов
  • функцию reflect.MakeSlice,
    которая создает срез с указанным типом и длиной
  • функцию reflect.MakeMap,
    которая создает карту с указанным типом
  • функцию reflect.Value,
    которая представляет значение в системе отражения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить