if/else
ではなくswitch
演算子でこのロジックを実装する方法は?スイッチ演算子を使用し、文字列を検出してシンボルを検出する最適な方法
type token =
| DOT
| OPEN_BRACKET
| SYMBOL;
let dot_code = ".".[0] |> Char.code;
let open_bracket_code = "{".[0] |> Char.code;
let char_to_token symbol :token => {
let code = Char.code symbol;
let c =
if (code === dot_code) {
DOT
} else if (code === open_bracket_code) {
OPEN_BRACKET
} else {
SYMBOL
};
c
};
String.iter
(
fun symbol => {
let c = char_to_token symbol;
switch c {
| DOT => print_string " DOT "
| OPEN_BRACKET => print_string " OPEN_BRACKET "
| SYMBOL => print_char symbol
}
}
)
"a.s {";
または文字列を反復処理し、.
と{
などのシンボルを検出するための最良の方法は何ですか?