mirror of
https://github.com/erg-lang/erg.git
synced 2025-09-29 12:24:45 +00:00
1.3 KiB
1.3 KiB
module unsound
Provides APIs perform unsound and unsafe operations that cannot be guaranteed safe in Erg's type system.
unsafe!
Executes a Unsafe
procedure. Just like Rust, Unsafe
APIs cannot be called directly, but are all passed as higher-order functions to this procedure.
unsound = import "unsound"
i = unsound.unsafe! do!:
# convert `Result Int` to `Int`
unsound.transmute input!().try_into(Int), Int
transmute
第1引数のオブジェクトを第2引数の型へ変換します。型チェックは行われません。 この関数は型システムの型安全性を損ないます。使用の際はバリデーション等を行ってください。
auto_transmute
transmute
とは違い、期待される型に自動で変換します。OcamlのObj.magic
と同じ働きをします。