Go fmt.Sprintf 형식 문자열에서 동일한 매개변수를 여러 번 재사용하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-11-07 05:55:03
원래의
871명이 탐색했습니다.

How Can I Reuse the Same Parameter Multiple Times in a Go fmt.Sprintf Format String?

fmt.Sprintf 형식 문자열에서 동일한 매개변수를 여러 번 참조하는 방법

Go에서 fmt 패키지는 편리한 방법을 제공합니다. Sprintf 함수를 사용하여 문자열 형식을 지정합니다. 그러나 형식 문자열 내에서 동일한 매개변수를 여러 번 지정하는 것은 번거로울 수 있습니다.

다음 예를 고려하세요.

func getTableCreationCommands(v string) string {
    return `
        CREATE TABLE share_` + v + ` PARTITION OF share FOR VALUES IN (` + v + `);
        CREATE TABLE nearby_` + v + ` PARTITION OF nearby FOR VALUES IN (` + v + `);
    `
}
로그인 후 복사

여기서 매개변수 'v'를 4번 반복해야 합니다. SQL 명령을 생성하는 시간입니다. 이러한 장황한 접근 방식 대신 명시적인 인수 인덱스를 사용하여 형식 문자열 내에서 동일한 매개변수를 여러 번 참조할 수 있습니다.

import "fmt"

func getTableCreationCommands(s string) string {
    return fmt.Sprintf(`
        CREATE TABLE share_%[1]v PARTITION OF share FOR VALUES IN (%[1]v);
        CREATE TABLE nearby_%[1]v PARTITION OF nearby FOR VALUES IN (%[1]v);
    `, s)
}

func main() {
    fmt.Println(getTableCreationCommands("X"))
}
로그인 후 복사

이 수정된 함수에서는 인수 인덱스 [1]을 대괄호로 묶습니다. 서식 지정 동사(%v) 앞에 이는 Sprintf에 전달된 첫 번째 인수(이 경우 문자열 "X")를 사용한다는 것을 나타냅니다. 이 스니펫에 대한 플레이그라운드 링크는 https://play.golang.org/p/fKV3iviuwll입니다.

명시적인 인수 인덱스를 사용하면 매개변수를 한 번만 전달하고 형식 문자열 내에서 필요에 따라 참조할 수 있습니다. 더욱 간결하고 읽기 쉽게 구현되었습니다.

위 내용은 Go fmt.Sprintf 형식 문자열에서 동일한 매개변수를 여러 번 재사용하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿