OCaml์—์„œ character (char) ์™€ string (string) ์˜ ์ฐจ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1. ๊ธฐ๋ณธ์ ์ธ ์ฐจ์ด์ 

๊ตฌ๋ถ„ char string
์„ค๋ช… ํ•˜๋‚˜์˜ ๋ฌธ์ž ๋ฌธ์ž๋“ค์˜ ๋‚˜์—ด (๋ฌธ์ž์—ด)
ํ‘œํ˜„ ๋ฐฉ์‹ 'a', 'b', '1' "hello", "world"
ํƒ€์ž… char string
๊ธธ์ด ํ•ญ์ƒ 1 ๊ฐ€๋ณ€์ 
๋ถˆ๋ณ€์„ฑ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ (mutable) ๋ถˆ๋ณ€ (immutable)

2. ์‚ฌ์šฉ ์˜ˆ์ œ

  1. char ์‚ฌ์šฉ ์˜ˆ

    let c: char = 'A';;
    print_char c;; (* ์ถœ๋ ฅ: A *)
    
  2. string ์‚ฌ์šฉ ์˜ˆ

    let s: string = "Hello";;
    print_string s;; (* ์ถœ๋ ฅ: Hello *)
    

3. ๋ฌธ์ž์™€ ๋ฌธ์ž์—ด ๋ณ€ํ™˜

  1. char โ†’ string ๋ณ€ํ™˜

    let c = 'A';;
    let s = String.make 1 c;;  (* "A" *)
    
  2. string โ†’ char ๋ณ€ํ™˜

    let s = "Hello";;
    let first_char = s.[0];;  (* 'H' *)
    

4. ๋ฌธ์ž์—ด์€ ๋ถˆ๋ณ€, ํ•˜์ง€๋งŒ Bytes ์‚ฌ์šฉ์œผ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ

OCaml์—์„œ string์€ immutable (๋ถˆ๋ณ€) ํ•˜์ง€๋งŒ, Bytes ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

let s = Bytes.of_string "hello";;
Bytes.set s 0 'H';;  (* ์ฒซ ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ *)
let new_s = Bytes.to_string s;;  (* "Hello" *)

5. ์š”์•ฝ

์†์„ฑ char string
ํ‘œํ˜„ 'A', 'b' "Hello", "abc"
์ž๋ฃŒํ˜• char string
๊ธธ์ด ํ•ญ์ƒ 1 ์—ฌ๋Ÿฌ ๋ฌธ์ž ํฌํ•จ ๊ฐ€๋Šฅ
์ธ๋ฑ์‹ฑ ๊ฐ€๋Šฅ? ํ•ด๋‹น ์—†์Œ s.[index] ์‚ฌ์šฉ ๊ฐ€๋Šฅ
๋ถˆ๋ณ€์„ฑ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ ๋ถˆ๋ณ€ (Bytes ์‚ฌ์šฉ ์‹œ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ)

๋”ฐ๋ผ์„œ ํ•˜๋‚˜์˜ ๋ฌธ์ž๋งŒ ํ•„์š”ํ•  ๋•Œ๋Š” char๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์—ฌ๋Ÿฌ ๋ฌธ์ž๋ฅผ ๋‹ค๋ฃฐ ๋•Œ๋Š” string์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.