- RubyLanguage
- RubyLanguage/Class
- RubyLanguage/Container
- RubyLanguage/ExceptionHandling
- RubyLanguage/InputOutput
1. 컨ν μ΄λ ¶
- κ°μ²΄λ₯Ό ꡬ쑰νλ λ°©λ²μΌλ‘ μ μ₯ν΄λ μ μλ μΆμ λ°μ΄ν° νμ
(ADT)
- λ°°μ΄κ³Ό ν΄μλ
- Ruby νλ‘κ·Έλλ°μ μμ΄ κ°μ₯ κΈ°λ³Έμ μΈ μ»¨ν
μ΄λ κ°μ²΄μ΄λ€.
- λ€λ₯Έ κ°μ²΄λ‘μ μ°Έμ‘°λ₯Ό μ μ₯νλ 컨ν
μ΄λμ΄λ€.
- Ruby νλ‘κ·Έλλ°μ μμ΄ κ°μ₯ κΈ°λ³Έμ μΈ μ»¨ν
μ΄λ κ°μ²΄μ΄λ€.
- Rubyλ iteratorλ₯Ό ν΅ν΄ 컨ν
μ΄λ μμ λ°λ³΅μ μμ°μ€λ½κ² νκΈ°ν μ μλ€.
1.1. λ°°μ΄ ¶
- κ°μ²΄λ‘μ μ°Έμ‘°λ₯Ό μ°¨λ‘λλ‘ λμ΄ν κ².
- λ°°μ΄μ΄ μ μ₯νκ³ μλ κ²μ κ°μ²΄ κ·Έ μμ²΄κ° μλλ€.
- κ°μ²΄ μ체λ₯Ό λ³κ²½νλ©΄ κ·Έ κ°μ²΄λ₯Ό μ°Έμ‘°νκ³ μλ λͺ¨λ λ°°μ΄μμμ κ°λ λ³ννλ€.
- λ°°μ΄μ΄ μ μ₯νκ³ μλ κ²μ κ°μ²΄ κ·Έ μμ²΄κ° μλλ€.
- μμ
- λ°°μ΄μ΄ μ μ₯νκ³ μλ κ°κ°μ κ°μ²΄ μ°Έμ‘°.
- λ°°μ΄μ μμκ° λμΌν μλ£νμΌ νμλ μλ€.
- μμλ‘ λ°°μ΄μ ν¬ν¨ν μλ μλ€.
- λ°°μ΄μ΄ μ μ₯νκ³ μλ κ°κ°μ κ°μ²΄ μ°Έμ‘°.
- 첨μ
- λ°°μ΄μ μμκ° λͺλ²μ§Έ μμμΈμ§ κ°λ¦¬ν€λ λ²νΈ.
- 0λΆν° μμνλ€.
- λ°°μ΄μ μμκ° λͺλ²μ§Έ μμμΈμ§ κ°λ¦¬ν€λ λ²νΈ.
1.1.1. μμ± ¶
- 리ν°λ΄λ‘ μμ±
array = ["a", "b", 3, "String", [1, 2]]
- Array.newλ‘ μμ±
array = Array.new
1.1.2. 첨μμ°Έμ‘° ¶
- 첨μμ°Έμ‘° μ°μ°μ
- [] λ₯Ό μ¬μ©ν΄ μ°Έμ‘° μμΉμ κ°μ²΄μ μ κ·Όν μ μλ€.
- ν΄λΉνλ μμκ° μ‘΄μ¬νμ§ μλ 첨μμ λν΄μλ nilμ λ°ννλ€.
- [] λ₯Ό μ¬μ©ν΄ μ°Έμ‘° μμΉμ κ°μ²΄μ μ κ·Όν μ μλ€.
a, b = 1, 2 array = [a, b, 3, "String", [1, 2]] coffee = ["μλ©λ¦¬μΉ΄λ Έ", "μΉ΄νλͺ¨μΉ΄", "μΉ΄νΈμΉλ Έ"] array[0] #array λ°°μ΄μ 첫λ²μ§Έ μμμΈ aμ μ κ·Ό p array[0] #aμ κ°μΈ 1 μΆλ ₯ coffee[2] #coffee λ°°μ΄μ μΈλ²μ§Έ μμμΈ "μΉ΄νΈμΉλ Έ"μ μ κ·Ό p coffee[2] #"μΉ΄νΈμΉλ Έ" μΆλ ₯ coffee[3] #coffee λ°°μ΄μ λ€λ²μ§Έ μμμ μ κ·Όνλ μμκ° μμΌλ―λ‘ nil λ°ν[1]
- μμ 첨μ
- μμ 첨μ μ¬μ©μ λ€μμλΆν° μμμΌλ‘ μμλ₯Ό κ°λ¦¬ν¨λ€.
a[-n] = a[a.length - n]
- μμ 첨μ μ¬μ©μ λ€μμλΆν° μμμΌλ‘ μμλ₯Ό κ°λ¦¬ν¨λ€.
array = [3, "String", [1, 2]] p array[-2] #"String" μΆλ ₯
- κΈΈμ΄λ₯Ό ν¬ν¨ν 첨μ
- μμΉμ κΈΈμ΄λ₯Ό μ§μ νλ μ°Έμ‘°λ°©λ²
- namen, m : name λ°°μ΄μ n μμΉλΆν° μ΅λ mκ°μ μμλ₯Ό ν¬ν¨νλ μλ‘μ΄ λ°°μ΄ κ°μ²΄λ₯Ό μμ±νμ¬ λ°ν
- μμΉμ κΈΈμ΄λ₯Ό μ§μ νλ μ°Έμ‘°λ°©λ²
a, b = 1, 2 array = [a, b, 3, "String", [1, 2]] p array[1, 2] #[2, 3] μΆλ ₯ p array[3, 3] #["String", [1, 2]] μΆλ ₯ p array[-5, 3] #[1, 2, 3] μΆλ ₯
- λ²μ 첨μ
- λ²μ μμ ν¬ν¨λλ μμλ₯Ό μ»μ μ μλ€.
- λ²μ μμ ν¬ν¨λλ μμλ₯Ό μ»μ μ μλ€.
a, b = 1, 2 array = [a, b, 3, "String", [1, 2]] p array[0..2] #[1, 2, 3] μΆλ ₯ p array[0...2] #[1, 2] μΆλ ₯ p array[-4, 3] #[2, 3, "String"] μΆλ ₯
1.1.3. 첨μλμ ¶
- 첨μλμ
μ μ΄μ©ν¨μΌλ‘μ¨ λ°°μ΄μ λ΄μ©μ κ°±μ ν μ μλ€.
- [] μ°μ°μμ λμ
λ¬Έμ κ²°ν©ν νν
- λ°°μ΄μ κΈΈμ΄λ₯Ό λμ΄μλ μμΉμλ λμ
μ΄ κ°λ₯νλ€.(line 4)
- λ°°μ΄μ μλνμ₯λλ©° μ€κ°μ 곡백μ nilλ‘ μ±μμ§λ€.
- λ°°μ΄μ μλνμ₯λλ©° μ€κ°μ 곡백μ nilλ‘ μ±μμ§λ€.
- κΈΈμ΄λ₯Ό ν¬ν¨ν 첨μλ λ²μ 첨μλ₯Ό μ¬μ©ν κ²½μ°, μ°λ³μ 볡μ κ°μ κ°μ μ·¨ν μ μλ€.(line 5, 6)
- μ’λ³μ μμκ°μλ³΄λ€ μ°λ³ μμ΄ μ μ κ²½μ° λͺ¨μλ λΆλΆμ μμλ μ κ±°λκ³ λ°°μ΄μ ν¬κΈ°κ° μ€μ΄λ λ€.(line 7)
- μ’λ³μ μ§μ ν μμκ°μλ³΄λ€ μ°λ³ μμ΄ λ§μ κ²½μ° λ°°μ΄μ ν¬κΈ°λ₯Ό λλ €μ λμ
νλ€.(line 9)
- [] μ°μ°μμ λμ
λ¬Έμ κ²°ν©ν νν
array = [1, 2] array[0] = 3 #[3, 2] array[4] = 4 #[3, 2, nil, nil, 4] array[0, 3] = 'a', 'b', 'c' #["a", "b", "c", nil, 4] array[1..2] = 7, 8 #["a", 7, 8, nil, 4] array[0, 3] = "First" #["First", nil, 4] array[-2] = "2nd" #["First", "2nd", 4] array[0, 2] = 1, 2, 3 #[1, 2, 3, 4]
1.1.4. λΉκ΅ ¶
- λ°°μ΄ κ°μ²΄λΌλ¦¬λ λμνλ μμκ° λͺ¨λ λμΌν κ²½μ°μ νν΄μλ§ κ°λ€.
array1 = [1, 2, "str"] array2 = [1, 2, "str"] array1 == array2 #true array1 == ["str", 1, 2] #false: μμκ° λ€λ₯΄λ€