はじめに
この実験では、Rust でのパターンマッチングを使った引数解析の例を示します。このプログラムはコマンドライン引数を受け取り、渡された引数の数と型に基づいて異なる操作を行います。引数が渡されなければ、メッセージを表示します。引数が 1 つだけ渡され、それが整数 42 として解析できる場合、「これが答えです!」と表示します。コマンドと整数引数が渡された場合、整数に対して増加または減少操作を行います。それ以外の数の引数が渡された場合、プログラムの正しい使い方を説明するヘルプメッセージを表示します。
注: 実験でファイル名が指定されていない場合は、好きなファイル名を使うことができます。たとえば、
main.rs
を使って、rustc main.rs &&./main
でコンパイルして実行することができます。
Skills Graph
%%%%{init: {'theme':'neutral'}}%%%%
flowchart RL
rust(("Rust")) -.-> rust/FunctionsandClosuresGroup(["Functions and Closures"])
rust(("Rust")) -.-> rust/MemorySafetyandManagementGroup(["Memory Safety and Management"])
rust(("Rust")) -.-> rust/DataStructuresandEnumsGroup(["Data Structures and Enums"])
rust(("Rust")) -.-> rust/AdvancedTopicsGroup(["Advanced Topics"])
rust(("Rust")) -.-> rust/BasicConceptsGroup(["Basic Concepts"])
rust(("Rust")) -.-> rust/DataTypesGroup(["Data Types"])
rust/BasicConceptsGroup -.-> rust/variable_declarations("Variable Declarations")
rust/DataTypesGroup -.-> rust/integer_types("Integer Types")
rust/DataTypesGroup -.-> rust/string_type("String Type")
rust/FunctionsandClosuresGroup -.-> rust/function_syntax("Function Syntax")
rust/FunctionsandClosuresGroup -.-> rust/expressions_statements("Expressions and Statements")
rust/MemorySafetyandManagementGroup -.-> rust/lifetime_specifiers("Lifetime Specifiers")
rust/DataStructuresandEnumsGroup -.-> rust/method_syntax("Method Syntax")
rust/AdvancedTopicsGroup -.-> rust/operator_overloading("Traits for Operator Overloading")
subgraph Lab Skills
rust/variable_declarations -.-> lab-99279{{"Rust でのコマンドライン引数解析"}}
rust/integer_types -.-> lab-99279{{"Rust でのコマンドライン引数解析"}}
rust/string_type -.-> lab-99279{{"Rust でのコマンドライン引数解析"}}
rust/function_syntax -.-> lab-99279{{"Rust でのコマンドライン引数解析"}}
rust/expressions_statements -.-> lab-99279{{"Rust でのコマンドライン引数解析"}}
rust/lifetime_specifiers -.-> lab-99279{{"Rust でのコマンドライン引数解析"}}
rust/method_syntax -.-> lab-99279{{"Rust でのコマンドライン引数解析"}}
rust/operator_overloading -.-> lab-99279{{"Rust でのコマンドライン引数解析"}}
end