Spec-Zone.ru › Elixir 1.10

StringIO

Управляет процессом устройства ввода-вывода, обернутого вокруг строки.

Устройство ввода-вывода StringIO может быть передано в качестве «устройства» большинству функций в модуле IO.

Примеры

iex> {:ok, pid} = StringIO.open("foo")
iex> IO.read(pid, 2)
"fo"

Обзор

Функции

child_spec(init_arg)

Возвращает спецификацию для запуска этого модуля под надзором.

close(pid)

Останавливает устройство ввода-вывода и возвращает оставшиеся буферы ввода/вывода.

contents(pid)

Возвращает текущие буферы ввода/вывода для данного устройства ввода-вывода.

flush(pid)

Очищает буфер вывода и возвращает его текущее содержимое.

open(string, options_or_function \\ [])

Создает устройство ввода-вывода.

open(string, options, function)

Создает устройство ввода-вывода.

Функции

child_spec(init_arg)

Возвращает спецификацию для запуска этого модуля под надзором.

См. Supervisor.

close(pid)

Спецификации

close(pid()) :: {:ok, {binary(), binary()}}

Останавливает устройство ввода-вывода и возвращает оставшиеся буферы ввода/вывода.

Примеры

iex> {:ok, pid} = StringIO.open("in")
iex> IO.write(pid, "out")
iex> StringIO.close(pid)
{:ok, {"in", "out"}}

contents(pid)

Спецификации

contents(pid()) :: {binary(), binary()}

Возвращает текущие буферы ввода/вывода для данного устройства ввода-вывода.

Примеры

iex> {:ok, pid} = StringIO.open("in")
iex> IO.write(pid, "out")
iex> StringIO.contents(pid)
{"in", "out"}

flush(pid)

Спецификации

flush(pid()) :: binary()

Очищает буфер вывода и возвращает его текущее содержимое.

Примеры

iex> {:ok, pid} = StringIO.open("in")
iex> IO.write(pid, "out")
iex> StringIO.flush(pid)
"out"
iex> StringIO.contents(pid)
{"in", ""}

open(string, options_or_function \\ [])

Спецификации

open(binary(), keyword()) :: {:ok, pid()}
open(binary(), (pid() -> res)) :: {:ok, res} when res: var

Создает устройство ввода-вывода.

string будет начальным вводом вновь созданного устройства.

options_or_function может быть списком ключевых слов параметров или функцией.

Если параметры предоставлены, результатом будет {:ok, pid}, возвращая созданное устройство ввода-вывода. Параметр :capture_prompt, установленный в true, включает подсказки (которые задаются как аргументы функциям IO.get*) в выходные данные устройства.

Если предоставлена функция, устройство будет создано и отправлено в функцию. После возврата функции устройство будет закрыто. Конечным результатом будет кортеж с :ok и результатом функции.

Примеры

iex> {:ok, pid} = StringIO.open("foo")
iex> IO.gets(pid, ">")
"foo"
iex> StringIO.contents(pid)
{"", ""}

iex> {:ok, pid} = StringIO.open("foo", capture_prompt: true)
iex> IO.gets(pid, ">")
"foo"
iex> StringIO.contents(pid)
{"", ">"}

iex> StringIO.open("foo", fn pid ->
...>   input = IO.gets(pid, ">")
...>   IO.write(pid, "The input was #{input}")
...>   StringIO.contents(pid)
...> end)
{:ok, {"", "The input was foo"}}

open(string, options, function)

Спецификации

open(binary(), keyword(), (pid() -> res)) :: {:ok, res} when res: var

Создает устройство ввода-вывода.

string будет начальным вводом вновь созданного устройства.

Устройство будет создано и отправлено заданной функции. После возврата функции устройство будет закрыто. Конечным результатом будет кортеж с :ok и результатом функции.

Параметры

  • :capture_prompt - если установлено в true, подсказки (заданные как аргументы функциям IO.get*) будут включены в выходные данные. По умолчанию false.

  • :encoding (с v1.10.0) - кодировка устройства ввода-вывода. Допустимые значения :unicode (по умолчанию) и :latin1.

Примеры

iex> StringIO.open("foo", [], fn pid ->
...>   input = IO.gets(pid, ">")
...>   IO.write(pid, "The input was #{input}")
...>   StringIO.contents(pid)
...> end)
{:ok, {"", "The input was foo"}}

iex> StringIO.open("foo", [capture_prompt: true], fn pid ->
...>   input = IO.gets(pid, ">")
...>   IO.write(pid, "The input was #{input}")
...>   StringIO.contents(pid)
...> end)
{:ok, {"", ">The input was foo"}}

© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.10.4/StringIO.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API