3 개의 연속 된 줄 바꿈 ("\n\n\n"
)으로 문자열을 분할하려고합니다. str.split('\n\n\n')
을 시도했지만 작동하지 않았지만 str.split("\n\n\n")
으로 변경하면 작동하기 시작했습니다. 왜 그런 행동이 일어나는가?작은 따옴표와 큰 따옴표
2
A
답변
8
작은 따옴표로 묶인 문자열은 문자열입니다. 따라서 '\n\n\n'
은 3 개의 백 슬래시이고 3 개는 n
이며 3 줄 넘지는 아닙니다. 큰 따옴표 문자열 만 올바르게 이스케이프 처리 할 수 있습니다. 단일 인용 문자열 리터럴에서
puts 'abc\nabc' # => abc\nabc
puts "abc\nabc" # => abc
# abc
0
슬래시
'\n' == '\\n'
4
단일 인용 문자열이 실제/문자 내용, 예를 들어, 두 배로 할 필요는 없다
1.9.3-p194 :003 > puts 'Hi\nThere'
Hi\nThere
=> nil
반면 이중 인용 된 문자열 특수 문자 '보간'(\ n)도와 줄 바꿈을, 예를 들어,
1.9.3-p194 :004 > puts "Hi\nThere"
Hi
There
=> nil
1.9.3-p194 :005 >
모범 사례 권장 사항 : (보간의 필요에 따라 큰 따옴표를 사용) 가능하면
- 따옴표를 통해 작은 따옴표를 선택합니다.
- '내 인용어'따옴표를 '어딘가에'따옴표로 붙이면