Определение синтаксиса сегмента данных можно найти в спецификации Текстовый формат WebAssembly . Это действительно довольно просто, вот в более простой форме:
data $memidx $offset $data
Где $memidx
- необязательный индекс, который указывает, в какую память модуля заполняется сегмент данных. В текущей версии WebAssembly поддерживается только память одного модуля , поэтому она всегда будет равна нулю.
$offset
- это константное выражение, указывающее начальную точку, в которую должны быть записаны данные.
Наконец $data
- это сами данные. Он может представлять текстовые или двоичные данные с простой кодировкой, как , подробно описанной в спецификации .
Например, для добавления Hello World
в память модуля со смещением нуля это сделает работу:
(data (i32.const 0) "Hello World")