Cách dùng Rune trong Golang

Rune trong Golang là gì? Cách dùng Rune trong Golang như thế nào? Bài viết sẽ cho bạn biết câu trả lời.

Những điều cần biết về Rune trong Golang

Trước đây, chúng ta chỉ có một bộ ký tự, và được gọi là ASCII (American Standard Code for Information Interchange). Khi đó, chúng ta sử dụng 7 bit để biểu diễn 128 ký tự, bao gồm các chữ cái tiếng Anh viết hoa và viết thường, chữ số & nhiều loại dấu câu và ký tự điều khiển thiết bị. Do hạn chế về ký tự này, phần lớn dân số không thể sử dụng hệ thống chữ viết tùy chỉnh của họ. Để giải quyết vấn đề đó, Unicode đã "ra đời". Unicode là siêu tập của ASCII chứa tất cả các ký tự có trong hệ thống chữ viết thế giới ngày nay. Nó bao gồm các dấu trọng âm, dấu phụ, mã điều khiển như tab và xuống dòng, gán cho mỗi ký tự một số chuẩn gọi là "Unicode Code Point" hoặc trong ngôn ngữ Go là "Rune". Kiểu Rune là một bí danh của int32.

Điểm cần nhớ về Rune trong Golang

  • Luôn nhớ rằng, một chuỗi là một chuỗi các byte chứ không phải là một Rune. Một chuỗi có thể chứa văn bản Unicode được mã hóa theo UTF-8. Nhưng mã nguồn Go được mã hóa theo UTF-8, do đó, không cần phải mã hóa chuỗi theo UTF-8.
  • UTF-8 mã hóa tất cả Unicode trong phạm vi từ 1 đến 4 byte, trong đó 1 byte được sử dụng cho ASCII và phần còn lại cho Rune.
  • ASCII chứa tổng cộng 256 phần tử, trong số đó, 128 là ký tự và 0-127 được xác định là điểm mã. Ở đây, điểm mã đề cập đến phần tử biểu diễn một giá trị duy nhất.

Ví dụ:

Đây là một Rune có giá trị thập lục phân &#x2644.

Ý nghĩa thực sự của Rune

Nó trình bày một hằng số Rune, trong đó một giá trị số nguyên nhận dạng một điểm mã Unicode. Trong ngôn ngữ Go, một Rune Literal được thể hiện dưới dạng một hoặc nhiều ký tự được đặt trong dấu ngoặc đơn như ‘g’, ‘\t’, v.v. Giữa các dấu ngoặc đơn, bạn được phép đặt bất kỳ ký tự nào ngoại trừ một dòng mới và một dấu ngoặc đơn không thoát. Ở đây, các ký tự được đặt trong dấu ngoặc đơn này tự biểu diễn giá trị Unicode của ký tự đã cho và các chuỗi nhiều ký tự có dấu gạch chéo ngược (ở đầu chuỗi nhiều ký tự) mã hóa các giá trị theo một định dạng khác. Trong Rune Literal, tất cả các chuỗi bắt đầu bằng dấu gạch chéo ngược đều không hợp lệ, chỉ các ký tự escape đơn sau đây biểu diễn các giá trị đặc biệt khi bạn sử dụng chúng với dấu gạch chéo ngược:

Ký tựUnicodeMô tả
\aU+0007Cảnh báo hoặc chuông
\bU+0008Xóa lùi
\fU+000CDữ liệu biểu mẫu
\nU+000ACấp dữ liệu dòng hoặc xuống dòng
\rU+000DTrả về đầu dòng
\tU+0009Tab ngang
\vU+000bTab dọc
\\U+005cDấu gạch chéo ngược
\’U+0027Dấu nháy đơn
\”U+0022Dấu nháy kép (chỉ hợp lệ trong chuỗi ký tự)

Ví dụ:

//Minh họa chương trình Go đơn giản về cách tạo một rune
package main

import (
	"fmt"
	"reflect"
)

func main() {

	// Tạo một rune
	rune1 := 'B'
	rune2 := 'g'
	rune3 := '\a'

	// Hiện rune và kiểu của nó
	fmt.Printf("Rune 1: %c; Unicode: %U; Type: %s", rune1,
							rune1, reflect.TypeOf(rune1))
	
	fmt.Printf("\nRune 2: %c; Unicode: %U; Type: %s", rune2,
							rune2, reflect.TypeOf(rune2))
	
	fmt.Printf("\nRune 3: Unicode: %U; Type: %s", rune3, 
								reflect.TypeOf(rune3))

}

Kết quả:

Rune 1: B; Unicode: U+0042; Type: int32
Rune 2: g; Unicode: U+0067; Type: int32
Rune 3: Unicode: U+0007; Type: int32

Ví dụ 2:

Ví dụ cách dùng Rune trong Golang

Kết quả:

Character: ♛, Unicode:U+265B, Position:0 
Character: ♠, Unicode:U+2660, Position:1 
Character: ♧, Unicode:U+2667, Position:2 
Character: ♡, Unicode:U+2661, Position:3 
Character: ♬, Unicode:U+266C, Position:4 
Thứ Tư, 19/02/2025 09:41
3,33 👨 122
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
❖
    Chia sẻ
    Chia sẻ FacebookChia sẻ Twitter
    Đóng