Golang의 첫 번째 요소를 기반으로 문자열 분할
git 브랜치 이름을 구문 분석할 때 문자열을 원격으로 분할하고 지점 이름. 처음에는 첫 번째 슬래시로 분할하는 것이 논리적인 것처럼 보였지만 분기 이름에 여러 개의 슬래시가 포함되면 문제가 발생했습니다.
초기 접근 방식
초기 구현에서는 분할의 첫 번째 요소에 의존했습니다. Slice.
<code class="go">func ParseBranchname(branchString string) (remote, branchname string) { branchArray := strings.Split(branchString, "/") remote = branchArray[0] branchname = branchArray[1] return }</code>
수정된 접근 방식
슬래시가 있는 분기 이름을 수용하기 위해 코드가 수정되어 나머지 요소를 슬래시에 다시 병합했습니다.
<code class="go">func ParseBranchname(branchString string) (remote, branchname string) { branchArray := strings.Split(branchString, "/") remote = branchArray[0] copy(branchArray[0:], branchArray[0+1:]) branchArray[len(branchArray)-1] = "" branchArray = branchArray[:len(branchArray)-1] branchname = strings.Join(branchArray, "/") return }</code>
SplitN을 사용하는 대체 솔루션
Go 버전 1.18 이상의 경우 n=2인 strings.SplitN을 사용하여 대체 솔루션을 사용할 수 있습니다. 이렇게 하면 결과가 두 개의 하위 문자열로만 제한되어 원하는 분할을 효과적으로 달성할 수 있습니다.
<code class="go">func ParseBranchname(branchString string) (remote, branchname string) { branchArray := strings.SplitN(branchString, "/", 2) remote = branchArray[0] branchname = branchArray[1] return }</code>
이 솔루션은 추가 조작 없이 필요한 하위 문자열을 직접 추출하여 프로세스를 단순화합니다.
위 내용은 Golang의 첫 번째 요소를 기반으로 문자열을 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!