Wednesday, October 23, 2024

[Golang] Phần 7 – Go Formatting Verbs

-

Trong Go, các formatting verbs là những ký tự được sử dụng trong hàm Printf() để định dạng cách giá trị được in ra màn hình.

Đây là một số formatting verbs phổ biến:

  • General Formatting Verbs:
    • %v: In giá trị theo định dạng mặc định.
    • %#v: In giá trị theo định dạng cú pháp Go.
    • %T: In kiểu của giá trị.
    • %%: In ký tự %.
  • Integer Formatting Verbs:
    • %b: In giá trị ở cơ số 2.
    • %d: In giá trị ở cơ số 10.
    • %+d: In giá trị ở cơ số 10 và luôn hiển thị dấu.
    • %o: In giá trị ở cơ số 8.
    • %O: In giá trị ở cơ số 8 với tiền tố “0o”.
    • %x: In giá trị ở cơ số 16 (chữ thường).
    • %X: In giá trị ở cơ số 16 (chữ hoa).
    • %#x: In giá trị ở cơ số 16 với tiền tố “0x”.
    • %4d: Căn chỉnh sang phải với khoảng trắng (độ rộng 4).
    • %-4d: Căn chỉnh sang trái với khoảng trắng (độ rộng 4).
    • %04d: Căn chỉnh với số 0 (độ rộng 4).
  • String Formatting Verbs:
    • %s: In giá trị như là một chuỗi thông thường.
    • %q: In giá trị như là một chuỗi được bọc trong dấu ngoặc kép.
    • %8s: Căn chỉnh sang phải với khoảng trắng (độ rộng 8).
    • %-8s: Căn chỉnh sang trái với khoảng trắng (độ rộng 8).
    • %x: In giá trị như là một chuỗi hexadecimal của các giá trị byte.
    • % x: In giá trị như là một chuỗi hexadecimal của các giá trị byte với khoảng trắng.
  • Boolean Formatting Verbs:
    • %t: In giá trị boolean dưới dạng “true” hoặc “false”.
  • Float Formatting Verbs:
    • %e: In giá trị theo dạng biểu diễn khoa học với ‘e’ làm số mũ.
    • %f: In giá trị dưới dạng số thập phân, không có số mũ.
    • %.2f: Chiều rộng mặc định, chính xác đến 2 chữ số thập phân.
    • %6.2f: Chiều rộng 6, chính xác đến 2 chữ số thập phân.
    • %g: In giá trị theo dạng biểu diễn khoa học khi cần, chỉ hiển thị các chữ số cần thiết.

Các formatting verbs sử dụng với hàm Printf().

Trong Go, có nhiều ký tự định dạng (formatting verbs) khác nhau mà bạn có thể sử dụng với hàm Printf() để định dạng cách dữ liệu được in ra màn hình.

  • Dưới đây là một số ký tự định dạng chung:
    • %v: In giá trị theo định dạng mặc định.
    • %#v: In giá trị theo định dạng Go-syntax.
    • %T: In kiểu của giá trị.
    • %%: In ký tự %.

Dưới đây là một ví dụ sử dụng các ký tự định dạng này:

package main
import "fmt"

func main() {
  var i = 15.5
  var txt = "Hello World!"

  fmt.Printf("%v\n", i)
  fmt.Printf("%#v\n", i)
  fmt.Printf("%v%%\n", i)
  fmt.Printf("%T\n", i)

  fmt.Printf("%v\n", txt)
  fmt.Printf("%#v\n", txt)
  fmt.Printf("%T\n", txt)
}

Kết quả của đoạn mã này sẽ là:

15.5
15.5
15.5%
float64
Hello World!
"Hello World!"
string

Sử dụng hàm Printf() với các giá trị là kiểu số nguyên.

Khi sử dụng hàm Printf() trong Go với các giá trị kiểu số nguyên, bạn có thể sử dụng các ký tự định dạng (formatting verbs) để định dạng cách giá trị được in ra màn hình.

Dưới đây là một số ký tự định dạng phổ biến cho kiểu số nguyên:

  • %b: In giá trị ở cơ số 2 (binary).
  • %d: In giá trị ở cơ số 10 (decimal).
  • %+d: In giá trị ở cơ số 10 và luôn hiển thị dấu.
  • %o: In giá trị ở cơ số 8 (octal).
  • %O: In giá trị ở cơ số 8 với tiền tố “0o”.
  • %x: In giá trị ở cơ số 16 (hexadecimal), chữ thường.
  • %X: In giá trị ở cơ số 16 (hexadecimal), chữ hoa.
  • %#x: In giá trị ở cơ số 16 với tiền tố “0x”.
  • %4d: Căn chỉnh sang phải với khoảng trắng (độ rộng 4).
  • %-4d: Căn chỉnh sang trái với khoảng trắng (độ rộng 4).
  • %04d: Căn chỉnh với số 0 (độ rộng 4).
package main
import "fmt"

func main() {
  var i = 15
 
  fmt.Printf("%b\n", i)
  fmt.Printf("%d\n", i)
  fmt.Printf("%+d\n", i)
  fmt.Printf("%o\n", i)
  fmt.Printf("%O\n", i)
  fmt.Printf("%x\n", i)
  fmt.Printf("%X\n", i)
  fmt.Printf("%#x\n", i)
  fmt.Printf("%4d\n", i)
  fmt.Printf("%-4d\n", i)
  fmt.Printf("%04d\n", i)
}

Kết quả của đoạn mã này sẽ là:

1111
15
+15
17
0o17
f
F
0xf
  15
15
0015

Những ký tự định dạng này cung cấp khả năng linh hoạt cho việc định dạng và hiển thị giá trị số nguyên theo nhiều cách khác nhau.

Sử dụng hàm Printf() với các giá trị là kiểu chuỗi.

Khi sử dụng hàm Printf() trong Go với các giá trị kiểu chuỗi (string), bạn có thể sử dụng các ký tự định dạng để định dạng cách giá trị được in ra màn hình.

  • Dưới đây là một số ký tự định dạng phổ biến cho kiểu chuỗi:
    • %s: In giá trị như là một chuỗi thông thường.
    • %q: In giá trị như là một chuỗi được bọc trong dấu ngoặc kép.
    • %8s: Căn chỉnh sang phải với khoảng trắng (độ rộng 8).
    • %-8s: Căn chỉnh sang trái với khoảng trắng (độ rộng 8).
    • %x: In giá trị như là một chuỗi hexadecimal của các giá trị byte.
    • % x: In giá trị như là một chuỗi hexadecimal của các giá trị byte với khoảng trắng.
package main
import "fmt"

func main() {
  var txt = "Hello"
 
  fmt.Printf("%s\n", txt)
  fmt.Printf("%q\n", txt)
  fmt.Printf("%8s\n", txt)
  fmt.Printf("%-8s\n", txt)
  fmt.Printf("%x\n", txt)
  fmt.Printf("% x\n", txt)
}

Kết quả của đoạn mã này sẽ là:

Hello
"Hello"
   Hello
Hello
48656c6c6f
48 65 6c 6c 6f

Những ký tự định dạng này giúp bạn tùy chỉnh cách hiển thị và định dạng giá trị chuỗi khi in ra màn hình.

Sử dụng hàm Printf() với các giá trị là kiểu boolean.

Khi sử dụng hàm Printf() trong Go với giá trị boolean, bạn có thể sử dụng ký tự định dạng %t để in giá trị của biến boolean dưới dạng “true” hoặc “false”.

package main
import "fmt"

func main() {
  var i = true
  var j = false

  fmt.Printf("%t\n", i)
  fmt.Printf("%t\n", j)
}

Kết quả của đoạn mã này sẽ là:

true
false

Ký tự định dạng %t giúp in giá trị boolean dưới dạng “true” hoặc “false”.

Sử dụng hàm Printf() với các giá trị là kiểu số thực (float).

Đúng, khi sử dụng hàm Printf() trong Go với giá trị số thực (float), bạn có thể sử dụng các ký tự định dạng để định dạng cách giá trị được in ra màn hình.

  • Dưới đây là một số ký tự định dạng phổ biến cho kiểu số thực:
    • %e: In giá trị theo dạng biểu diễn khoa học với ‘e’ làm số mũ.
    • %f: In giá trị dưới dạng số thập phân, không có số mũ.
    • %.2f: Chiều rộng mặc định, chính xác đến 2 chữ số thập phân.
    • %6.2f: Chiều rộng 6, chính xác đến 2 chữ số thập phân.
    • %g: In giá trị theo dạng biểu diễn khoa học khi cần, chỉ hiển thị các chữ số cần thiết.
package main
import "fmt"

func main() {
  var i = 3.141

  fmt.Printf("%e\n", i)
  fmt.Printf("%f\n", i)
  fmt.Printf("%.2f\n", i)
  fmt.Printf("%6.2f\n", i)
  fmt.Printf("%g\n", i)
}

Kết quả của đoạn mã này sẽ là:

3.141000e+00
3.141000
3.14
  3.14
3.141

Các ký tự định dạng này giúp bạn tùy chỉnh cách hiển thị và định dạng giá trị số thực khi in ra màn hình.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories