標準ライブラリガイド

目的に合ったモジュールを見つけ、関数のエラーと所有権ルールを読み取る方法です。

Wave Foundation

必要な機能を探す

標準ライブラリはstd::module::fileパスでimportします。名前が似ていても、関数のエラーを返す方法は異なる場合があります。最初はAPI 読み方を読み、次の表から必要なモジュールに移動します。

やりたいこと 文書 主なimport
文字列長・比較・検索 string std::string::len, cmp, find, trim
メモリ割り当て・コピー・サイズ mem std::mem::alloc, ops, layout
サイズが変わるバイトリスト buffer std::buffer::alloc, read, write
バイナリの読み書き bytes std::bytes::types, cursor, leb128
ファイル・ディスクリプタ I/O fsとio std::fs::file, std::io::fd
経路組み合わせ・環境設定 pathとenv std::path::copy, std::env::environ
時間測定・待機 time std::time::duration, clock, sleep
数字アドレス・名前リスト照会 net.resolve std::net::resolve, resolve_table
TCP 接続・転送 net.tcp std::net::tcp, address, error
OS乱数 random std::random::fill
プロセス・OS 境界 システム機能 std::process::core, spawn, std::sys
非同期ジョブの実行 task std::task
数学・診断ヘルパー mathとdebug std::math::int, float, std::debug::core

初めて使用する例

以下のプログラムは別途パッケージをダウンロードせず、stdの関数を1つ使用します。 main.waveとして保存し、wavec run main.waveとして実行します。

import("std::string::len")::{
    len
};

fun main() {
    println("{}", len("Wave"));
}

結果は4です。同じ例を段階的に理解するには、文字列を読んでください。

コンパイラに合ったstd

wavec print std-pathで選択したパスを確認してください。他のチェックアウトのstdを使用する場合は、wavec --std-root /absolute/path/to/std check main.waveのようにパスを指定します。指定されたパスが無効または互換性がない場合は、エラーを表示します。

プラットフォーム境界

文字列・バイトのような計算機能とファイル・ソケットのようなOS機能を区別してください。ターゲットを認識しても、すべてのホストAPIが提供されるわけではありません。 サポートターゲットと各APIのプラットフォーム項目を一緒に読みます。 std::sysは低レベルのインタフェースであり、移植可能なプログラムは最初に親モジュールを使用します。