이것은 아마도 버그가 아닌 행동 의도 일 것입니다. 문서에 따르면 배열 분할 :
구분 값 또는 옵션 블록의 결과에 따라 배열을 하나 이상의 서브 어레이로 나눕니다.
이것은 연속 또는 선행 공간에 대해 보장하지 않습니다.
반면에 루비 코어 문서 ~을 위한 String#split
상태 :
패턴이 문자열 인 경우 STR을 분할 할 때 내용이 구분기로 사용됩니다. 패턴이 단일 공간 인 경우, STR은 공백에서 분할되며, 선행 공백과 인접한 공백 문자가 무시됩니다.
보시다시피, 당신이 기대하는 동작은 어떤 문자열도 아닌 공백에서만 작동합니다.
"abc ccc def ".split("c")
=> ["ab", " ", "", "", " def "]
배열을 분할 할 때 "공백"의 개념은 더 이상 의미가 없습니다. 그래서 나는 아마도 처음에는 반 직관적이라면 행동이 합리적이라고 생각합니다.