OCaml์์ character (char) ์ string (string) ์ ์ฐจ์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
| ๊ตฌ๋ถ | char |
string |
|---|---|---|
| ์ค๋ช | ํ๋์ ๋ฌธ์ | ๋ฌธ์๋ค์ ๋์ด (๋ฌธ์์ด) |
| ํํ ๋ฐฉ์ | 'a', 'b', '1' |
"hello", "world" |
| ํ์ | char |
string |
| ๊ธธ์ด | ํญ์ 1 | ๊ฐ๋ณ์ |
| ๋ถ๋ณ์ฑ | ๋ณ๊ฒฝ ๊ฐ๋ฅ (mutable) | ๋ถ๋ณ (immutable) |
char ์ฌ์ฉ ์
let c: char = 'A';;
print_char c;; (* ์ถ๋ ฅ: A *)
')๋ก ๊ฐ์ธ์ผ ํฉ๋๋ค.print_char ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๋ ฅํ ์ ์์ต๋๋ค.string ์ฌ์ฉ ์
let s: string = "Hello";;
print_string s;; (* ์ถ๋ ฅ: Hello *)
")๋ก ๊ฐ์ธ์ผ ํฉ๋๋ค.print_string ํจ์๋ก ์ถ๋ ฅํ ์ ์์ต๋๋ค.char โ string ๋ณํ
let c = 'A';;
let s = String.make 1 c;; (* "A" *)
String.make 1 c๋ฅผ ์ฌ์ฉํ์ฌ ํ ๊ฐ์ ๋ฌธ์๋ก ๋ ๋ฌธ์์ด์ ์์ฑํฉ๋๋ค.string โ char ๋ณํ
let s = "Hello";;
let first_char = s.[0];; (* 'H' *)
s.[index]๋ฅผ ์ฌ์ฉํฉ๋๋ค.Bytes ์ฌ์ฉ์ผ๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅOCaml์์ string์ immutable (๋ถ๋ณ) ํ์ง๋ง, Bytes ๋ชจ๋์ ์ฌ์ฉํ๋ฉด ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
let s = Bytes.of_string "hello";;
Bytes.set s 0 'H';; (* ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ๋ณ๊ฒฝ *)
let new_s = Bytes.to_string s;; (* "Hello" *)
| ์์ฑ | char |
string |
|---|---|---|
| ํํ | 'A', 'b' |
"Hello", "abc" |
| ์๋ฃํ | char |
string |
| ๊ธธ์ด | ํญ์ 1 | ์ฌ๋ฌ ๋ฌธ์ ํฌํจ ๊ฐ๋ฅ |
| ์ธ๋ฑ์ฑ ๊ฐ๋ฅ? | ํด๋น ์์ | s.[index] ์ฌ์ฉ ๊ฐ๋ฅ |
| ๋ถ๋ณ์ฑ | ๋ณ๊ฒฝ ๊ฐ๋ฅ | ๋ถ๋ณ (Bytes ์ฌ์ฉ ์ ๋ณ๊ฒฝ ๊ฐ๋ฅ) |
๋ฐ๋ผ์ ํ๋์ ๋ฌธ์๋ง ํ์ํ ๋๋ char๋ฅผ ์ฌ์ฉํ๊ณ , ์ฌ๋ฌ ๋ฌธ์๋ฅผ ๋ค๋ฃฐ ๋๋ string์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.