OxL Справочник OxL
РусскийEnglish

fn freeze

Moves value into an immutable shared Arc<frozen T> (§7.3).

Example:

oxl✓ проверяется в CI
fn main() io {
  let table = freeze({"a": 1})
  scope {
    let t2 = table.clone()
    let h = spawn lookup(t2)
    print("{h.join()!}")
  }
}

fn lookup(t: Shared<Map<str, i64>>) -> i64 pure => t.get("a") ?? 0
Вывод
1
@intrinsic("arc.new") pub(api) fn freeze<T>(value: T) -> Arc<frozen  T>

С версии. 1.0.0-beta

Параметры

ИмяТип
valueT

Возвращает

Arc<frozen T>

Эффекты

не объявлены (чистая, пока тело не говорит иное)

Определено в: std/core/task.oxl:232

См. также