標準ライブラリガイド
目的に合ったモジュールを見つけ、関数のエラーと所有権ルールを読み取る方法です。
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は低レベルのインタフェースであり、移植可能なプログラムは最初に親モジュールを使用します。