sách gpt4 ăn đã đi

string - Để sắp xếp một rune?

In lại Tác giả: IT Lão Cao Thời gian cập nhật: 28-10-2023 13:04:52 25 4
mua khóa gpt4 giày nike

Tôi gặp vấn đề khi sắp xếp chuỗi theo ký tự (để kiểm tra xem hai chuỗi có phải là đảo chữ hay không, tôi muốn sắp xếp cả hai chuỗi và kiểm tra xem chúng có bằng nhau không).

Tôi có thể có được chuỗi như thế này S của []chữ rune thể hiện:

rune := make([]rune, len(s)) 
sao chép(rune, []rune(s))

Tôi có thể sắp xếp các số nguyên như thế này

someInts := []int{5, 2, 6, 3, 1, 4} // chưa được sắp xếp
sắp xếp.Ints(một sốInts)

Nhưng chữ rune chỉ một int32 bí danh, vì vậy tôi có thể gọi

sắp xếp.Ints(runes) 

Tuy nhiên, tôi nhận được lỗi:

không thể sử dụng rune (kiểu []rune) làm kiểu []int trong đối số hàm

Vậy...làm cách nào để sắp xếp một lát int32, int64 hoặc int*?

biên tập: Tôi đã sửa lại chữ rune của mình rồi, nhưng trời ơi, nó xấu quá.

loại RuneSlice []rune

func (p RuneSlice) Len() int { trả về len(p) }
func (p RuneSlice) Less(i, j int) bool { trả về p[i] < p[j] }
func (p RuneSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] }

func sắp xếp(s chuỗi) chuỗi {
rune := []rune(s)
sắp xếp.Sort(RuneSlice(runes))
trả về chuỗi(runes)
}

Vì vậy, về cơ bản, nếu bạn có một lát cắt, bạn phải gói nó trong một phần triển khai sắp xếp.Giao diện thuộc loại. Tất cả các triển khai này sẽ có cùng một nội dung phương thức (như sắp xếp.IntSlicesắp xếp.Float64Slice). Nếu điều này thực sự xấu đến thế thì tại sao họ lại không loại Trình bao bọc WhatSlice có sẵn trong gói? Việc thiếu thuốc generic hiện đang bắt đầu gây tổn hại nặng nề. Phải có một cách tốt hơn để phân loại mọi thứ.

câu trả lời hay nhất

sử dụng sort.Sort(giao diện dữ liệu)và thực hiệnsắp xếp.Giao diện , hãy xem tài liệu về gói để biết ví dụ.

Bạn không thể int32 của chữ rune được sử dụng như số nguyên. Kiểm trabình luận số nguyên.

int là kiểu số nguyên có dấu có kích thước ít nhất là 32 bit. Tuy nhiên, đây là một kiểu riêng biệt và không phải là bí danh cho, chẳng hạn như int32.

Về chuỗi - để sắp xếp một rune? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/18171136/

25 4 0
Cựu chiến binh CNTT
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress