Enumについて
ある特定の文字列のみを扱う場合、Enum(Enumeration)
が使用できます。
Rust以外の言語にも、Enum
型を扱う言語は存在しますが、RustのEnum
は一味違います。
fn main() {
let get = Method::GET;
let delete = Method::DELETE;
let post = Method::POST;
let put = Method::PUT;
}
enum Method {
GET,
DELETE,
POST,
PUT,
HEAD,
CONNECT,
OPTIONS,
TRACE,
PATCH,
}
メモリ内での値
配列の添字のように番号が0から振られています。
enum Method {
GET, // 0
DELETE, // 1
POST, // 2
PUT, // 3
HEAD, // 4
CONNECT, // 5
OPTIONS, // 6
TRACE, // 7
PATCH, // 8
}
これらは明示して変更できます。
enum Method {
GET, // 0
DELETE, // 1
POST, // 2
PUT = 5, // 5
HEAD, // 6
CONNECT, // 7
OPTIONS, // 8
TRACE, // 9
PATCH, // 10
}
値を渡して保持することも可能です。
let get = Method::GET("aaaa".to_string());
enum Method {
GET(String),
DELETE,
POST,
}
Option Enum
RustにはOption
という組み込みのEnum
型が用意されており、以下の2つがあります。
- None: 値がない
- Some(T): 値がある
オプショナルな値の表現は以下のようになります。
struct Request {
path: String,
query_string: Option<String>,
method: Method,
}