GO의 fmt
패키지는 주로 fmt.Printf
및 fmt.Sprintf
와 같은 기능을 통해 강력한 문자열 형식 형식 기능을 제공합니다. 이 함수는 형식 지정자를 사용하여 인수가 문자열 내에서 형식화되는 방법을 정의합니다.
두 기능 모두 형식 지정자에 의존하며, 이는 데이터 형식의 형식을 정의하는 문자열 내 자리 표시 자입니다. 예를 들어, %s
문자열에 사용됩니다. 정수의 경우 %d
, 부동 소수점 수에 대해 %f
사용됩니다.
다음은 fmt.Printf
및 fmt.Sprintf
사용되는 방법에 대한 간단한 예입니다.
<code class="go">package main import "fmt" func main() { name := "Alice" age := 30 // Using fmt.Printf to print directly to console fmt.Printf("My name is %s and I am %d years old.\n", name, age) // Using fmt.Sprintf to return a formatted string formattedString := fmt.Sprintf("My name is %s and I am %d years old.", name, age) fmt.Println(formattedString) }</code>
GO에서 fmt.Printf
와 fmt.Sprintf
의 주요 차이점은 다음과 같습니다.
fmt.Printf
서식 된 문자열을 표준 출력 (콘솔)에 직접 씁니다. 반면 fmt.Sprintf
형식을 저장하거나 나중에 사용할 수있는 string
값으로 형식의 문자열을 반환합니다.fmt.Printf
는 일반적으로 콘솔에 즉시 출력 할 때 사용되므로 디버깅 또는 대화식 응용 프로그램에 적합합니다. 대조적으로, fmt.Sprintf
형식화 된 문자열을 사용하기 전에 변수에 추가로 처리하거나 저장해야 할 때 유용합니다.fmt.Printf
값을 반환하지 않습니다. 콘솔에 인쇄하는 부작용 만 수행합니다. 그러나 fmt.Sprintf
변수에 할당 할 수있는 형식의 문자열을 반환합니다. GO의 fmt
패키지는 다양한 형식 지정자를 지원하여 다양한 데이터 유형 및 서식 요구를 처리합니다. 다음은 몇 가지 일반적인 형식 지정자입니다.
%s : 문자열 서식.
<code class="go">name := "Bob" fmt.Printf("Hello, %s!\n", name)</code>
%D : 소수 정수 서식.
<code class="go">age := 25 fmt.Printf("Age: %d\n", age)</code>
%F : 부동 소수점 번호 형식.
<code class="go">price := 12.99 fmt.Printf("Price: %.2f\n", price) // Two decimal places</code>
%V : 값 유형의 기본 형식입니다.
<code class="go">structVal := struct { Name string Age int }{"Charlie", 30} fmt.Printf("Value: %v\n", structVal) // Output: Value: {Charlie 30}</code>
%t : 값의 유형.
<code class="go">var num int = 42 fmt.Printf("Type: %T\n", num) // Output: Type: int</code>
%P : 포인터 주소.
<code class="go">ptr := &num fmt.Printf("Pointer: %p\n", ptr)</code>
fmt.Fprintf
는 fmt.Printf
와 유사하지만 형식화 된 출력의 대상을 지정할 수 있습니다. 이 함수는 io.Writer
첫 번째 인수로 간주합니다.이 기능은 os.File
, bytes.Buffer
또는 strings.Builder
와 같은 Write
메소드를 구현하는 모든 유형 일 수 있습니다.
다음은 다른 목적지와 함께 fmt.Fprintf
사용하는 방법을 보여주는 예입니다.
<code class="go">package main import ( "fmt" "os" "bytes" "strings" ) func main() { // Writing to stdout fmt.Fprintf(os.Stdout, "Hello, stdout!\n") // Writing to a file file, err := os.Create("output.txt") if err != nil { panic(err) } defer file.Close() fmt.Fprintf(file, "Hello, file!\n") // Writing to bytes.Buffer var buffer bytes.Buffer fmt.Fprintf(&buffer, "Hello, buffer!") fmt.Println("Buffer content:", buffer.String()) // Writing to strings.Builder var builder strings.Builder fmt.Fprintf(&builder, "Hello, builder!") fmt.Println("Builder content:", builder.String()) }</code>
이 예에서 fmt.Fprintf
표준 출력, 파일, bytes.Buffer
및 strings.Builder
에 서식 된 출력을 작성하는 데 사용됩니다. 각 사례는 fmt.Fprintf
GO의 다른 목적지로 포맷 된 출력을 지시하는 데 얼마나 유연하고 강력한지를 보여줍니다.
위 내용은 GO는 문자열 형식을 어떻게 처리합니까? (예 : Fmt.printf, Fmt.sprintf)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!