@@ -45,16 +45,16 @@ header: |
45
45
` Fixnum ` , ` true ` , ` nil ` , ` false ` 는 즉시 값으로 구현되어 있습니다. 즉시
46
46
값을 사용하면 변수는 객체에 대한 참조가 아니라 객체 자체를 보유합니다.
47
47
48
- 이러한 객체에는 싱글톤 메서드를 정의할 수 없습니다. 동일한 값을 가진 두 개
49
- 의 ` Fixnum ` 은 항상 동일한 객체 인스턴스를 나타내므로, (예를 들어) 값이
50
- ` 1 ` 인 ` Fixnum ` 에 대한 인스턴스 변수는 시스템의 모든 '1' 에 공유됩니다. 따라서
48
+ 이러한 객체에는 싱글턴 메서드를 정의할 수 없습니다. 동일한 값을 가진 두 개의
49
+ ` Fixnum ` 은 항상 동일한 객체 인스턴스를 나타내므로, (예를 들어) 값이
50
+ ` 1 ` 인 ` Fixnum ` 에 대한 인스턴스 변수는 시스템의 모든 ` 1 ` 에 공유됩니다. 따라서
51
51
이 중 하나에 대해서만 싱글톤 메서드를 정의하는 것은 불가능합니다.
52
52
53
53
### ` nil ` 과 ` false ` 의 차이점은 무엇인가요?
54
54
55
- 먼저 유사성부터 설명하겠습니다. ` nil ` 과 ` false ` 는 부울 컨텍스트에서 ` false ` 로
55
+ 먼저 유사성부터 설명하겠습니다. ` nil ` 과 ` false ` 는 불 컨텍스트에서 ` false ` 로
56
56
평가되는 유일한 두 개의 객체입니다.
57
- (즉, 이 둘은 유일한 "falsy" 값이며 다른 모든 객체는 "truthy" 입니다.)
57
+ (즉, 이 둘은 유일한 "falsy" 값이며 다른 모든 객체는 "truthy"입니다.)
58
58
59
59
그러나 ` nil ` 과 ` false ` 는 서로 다른 클래스(` NilClass ` 와 ` FalseClass ` )의
60
60
인스턴스이며, 다른 곳에서는 다른 동작을 합니다.
@@ -65,13 +65,13 @@ header: |
65
65
66
66
### 빈 문자열이 ` false ` 가 아닌 이유는 무엇인가요?
67
67
68
- Q: 조건 표현식에서 빈 문자열(` "" ` )이 ` true ` 를 반환하던데요! Perl에서
69
- 는 ` false ` 였는데...
68
+ Q: 조건 표현식에서 빈 문자열(` "" ` )이 ` true ` 를 반환하던데요! Perl에서는
69
+ ` false ` 였는데...
70
70
71
- A: 하지만 Ruby는 Perl이 아닙니다 ;-). Ruby에서는 조건부 컨텍스트에서
72
- ` nil ` 과 ` false ` 만 거짓입니다.
71
+ A: 하지만 Ruby는 Perl이 아닙니다. ;-) Ruby에서는 조건부 컨텍스트에서
72
+ ` nil ` 과 ` false ` 만 거짓입니다.
73
73
74
- ` empty? ` 를 사용하거나 문자열을 ` "" ` 와 비교하거나 문자열의 ` size ` , ` length ` 를
74
+ ` empty? ` 를 사용하거나, 문자열을 ` "" ` 와 비교하거나, 문자열의 ` size ` , ` length ` 를
75
75
` 0 ` 과 비교하여 문자열이 비어 있는지 확인할 수 있습니다.
76
76
77
77
### ` :name ` 은 무엇을 의미하나요?
@@ -107,9 +107,9 @@ SOUTH = :SOUTH
107
107
108
108
### 심볼의 값에 액세스하려면 어떻게 해야 하나요?
109
109
110
- 심볼에 해당하는 변수의 값을 얻으려면 ` symbol.to_s ` 또는 ` "#{심볼 }" ` 을
111
- 사용하여 변수 이름을 얻은 다음 심볼의 범위에서 이를 평가하여 변수의 내용
112
- 을 얻을 수 있습니다.
110
+ 심볼에 해당하는 변수의 값을 얻으려면 ` symbol.to_s ` 또는 ` "#{symbol }" ` 을
111
+ 사용하여 변수 이름을 얻은 다음 심볼의 스코프에서 이를 평가하여 변수의 내용을
112
+ 얻을 수 있습니다.
113
113
114
114
~~~
115
115
a = "This is the content of `a'"
@@ -136,7 +136,7 @@ demo = Demo.new
136
136
demo.send(:hello)
137
137
~~~
138
138
139
- 또는 ` Object#method ` 를 사용하여 해당 ` Method ` 객체를 반환한 다음 호출할
139
+ 또는 ` Object#method ` 를 사용하여 해당 ` Method ` 객체를 반환하게 한 다음 호출할
140
140
수 있습니다.
141
141
142
142
~~~
@@ -147,9 +147,9 @@ m.call # => "Hello, world"
147
147
### ` loop ` 는 제어 구조인가요?
148
148
149
149
` loop ` 는 제어 구조체처럼 보이지만 실제로는 ` Kernel ` 에 정의된 메서드입니다.
150
- loop 다음 블록은 지역 변수에 대한 새로운 스코프를 만듭니다.
150
+ loop 뒤에 오는 블록은 지역 변수에 대한 새로운 스코프를 만듭니다.
151
151
152
- ### Ruby에는 후 테스트(post-test) 루프가 없습니다.
152
+ ### Ruby에는 사후 테스트(post-test) 루프가 없습니다.
153
153
154
154
Q: Ruby에는 ` do { ... } while ` 구문이 없는데 마지막에 조건을 테스트하는
155
155
루프를 어떻게 구현하나요?
@@ -175,7 +175,7 @@ i = 3
175
175
i = 4
176
176
~~~
177
177
178
- ### ` p {} ` 의 경우 처럼 해시 리터럴을 메서드에 전달할 수 없는 이유는 무엇인가요?
178
+ ### ` p {} ` 의 경우처럼 해시 리터럴을 메서드에 전달할 수 없는 이유는 무엇인가요?
179
179
180
180
` {} ` 는 ` Hash ` 생성자가 아닌 블록으로 파싱됩니다. ` p({}) ` 처럼 매개변수라는
181
181
사실을 명시하면 ` {} ` 가 표현식으로 처리되도록 할 수 있습니다.
204
204
비트 패턴)이고, ` "\\1" ` 은 백슬래시와 문자 ` "1" ` 이 포함된 두 문자로 된
205
205
문자열입니다.
206
206
207
- ### ' ..` 와 ' ... ` 의 차이점은 무엇인가요?
207
+ ### ` .. ` 와 ` ... ` 의 차이점은 무엇인가요?
208
208
209
- '... ` 는 범위에 오른쪽을 포함하지만 ' ... ` 는 포함하지 않습니다.
209
+ ` .. ` 는 범위의 오른쪽 항을 포함하지만 ` ... ` 는 포함하지 않습니다.
210
210
211
211
~~~
212
212
(5..8).to_a # => [5, 6, 7, 8]
216
216
### ` or ` 와 ` || ` 의 차이점은 무엇인가요?
217
217
218
218
Q: ` p(nil || "Hello") ` 는 ` "Hello" ` 를 출력하지만 ` p(nil or "Hello") ` 는
219
- 구문 분석 오류를 발생시킵니다. 왜 그럴까요?
219
+ 구문 분석 오류를 발생시킵니다. 왜 그럴까요?
220
220
221
- A: ` or ` 의 우선순위가 너무 낮기 때문입니다, ` p((nil 또는 "Hello") ) ` 는
221
+ A: ` or ` 의 우선순위가 너무 낮기 때문입니다, ` p( (nil or "Hello") ) ` 는
222
222
작동합니다.
223
223
224
224
` or ` 의 우선 순위는 ` = ` 보다 낮지만 ` || ` 의 우선 순위는 더 높습니다.
@@ -233,7 +233,7 @@ foo = nil or "Hello" # (foo = nil) or "Hello" 로 해석
233
233
foo # => nil
234
234
~~~
235
235
236
- ` or ` (및 유사하게 ` and ` )은 부울 표현식을 결합하는 데 사용하는 것이 ** 아니라**
236
+ ` or ` (및 유사하게 ` and ` )는 불 표현식을 결합하는 데 사용하는 것이 ** 아니라**
237
237
다음과 같은 제어 흐름에 사용하는 것이 가장 좋습니다.
238
238
239
239
~~~
@@ -250,10 +250,10 @@ do_something or raise "some error!"
250
250
251
251
### ` load ` 와 ` require ` 의 차이점은 무엇인가요?
252
252
253
- ` load ` 는 Ruby 프로그램(` *.rb ` )을 로드하고 실행합니다.
253
+ ` load ` 는 Ruby 프로그램(` *.rb ` )을 불러오고 실행합니다.
254
254
255
- ` require ` 는 Ruby 프로그램도 로드하지만 바이너리 Ruby 확장 모듈(공유 라이브러리
256
- 또는 DLL)도 로드합니다 . 거기에 더해 ` require ` 는 기능이 두 번 이상 로드되지
255
+ ` require ` 는 Ruby 프로그램도 불러오지만 바이너리 Ruby 확장 모듈(공유 라이브러리
256
+ 또는 DLL)도 불러옵니다 . 거기에 더해 ` require ` 는 기능을 두 번 이상 불러오지
257
257
않도록 합니다.
258
258
259
259
### Ruby에는 예외 처리가 있나요?
@@ -272,14 +272,14 @@ ensure
272
272
end
273
273
~~~
274
274
275
- ` begin ` 절에서 예외가 발생하면 일치하는 예외 이름을 가진 ` rescue ` 절이 실행
276
- 됩니다 . ` ensure ` 절은 예외 발생 여부에 관계없이 실행됩니다. ` rescue ` 및 ` ensure `
277
- 절은 생략할 수 있습니다.
275
+ ` begin ` 절에서 예외가 발생하면 일치하는 예외 이름을 가진 ` rescue ` 절이
276
+ 실행됩니다 . ` ensure ` 절은 예외 발생 여부에 관계없이 실행됩니다. ` rescue ` 및
277
+ ` ensure ` 절은 생략할 수 있습니다.
278
278
279
279
` rescue ` 절에 대해 예외 클래스가 지정되지 않은 경우 묵시적으로 ` StandardError `
280
- 예외를 가르키며 , ` StandardError ` 와 ` is_a? ` 관계에 있는 예외가 캡처됩니다.
280
+ 예외를 가리키며 , ` StandardError ` 와 ` is_a? ` 관계에 있는 예외가 캡처됩니다.
281
281
282
282
이 표현식은 ` begin ` 절의 값을 반환합니다.
283
283
284
- 가장 최근의 예외는 전역 변수 ` $! ` 에 의해 액세스가 가능합니다(따라서 ` $!.type ` 을
284
+ 가장 최근의 예외는 전역 변수 ` $! ` 을 통해 액세스가 가능합니다(따라서 ` $!.type ` 을
285
285
사용하여 유형을 확인할 수 있습니다).
0 commit comments