Apabila membangun menggunakan Golang, selalunya perlu untuk menentukan jenis data. Antaranya, menentukan sama ada data adalah berangka juga merupakan keperluan biasa. Artikel ini akan memperkenalkan cara untuk menentukan sama ada data ialah nombor di Golang.
Kaedah 1: Gunakan pakej strconv
Pakej strconv ialah pakej dalam Golang yang digunakan untuk menukar rentetan kepada jenis asas Anda boleh menggunakannya untuk menentukan sama ada rentetan ialah nombor. Operasi khusus adalah seperti berikut:
import "strconv" func IsNumber(str string) bool { _, err := strconv.Atoi(str) return err == nil }
Dalam fungsi ini, fungsi Atoi
akan cuba menukar rentetan kepada jenis integer Jika ralat berlaku, objek ralat akan dikembalikan perlu menyemak sama ada ia adalah sifar. Mengembalikan benar jika ia adalah nombor, palsu sebaliknya.
Perlu diambil perhatian bahawa fungsi ini hanya boleh menilai integer Jika anda perlu menilai nombor titik terapung, anda perlu menggunakan fungsi ParseFloat
.
Kaedah 2: Gunakan ungkapan biasa
Ungkapan biasa ialah kaedah memadankan rentetan daripada teks dan juga boleh digunakan untuk menentukan sama ada rentetan ialah nombor. Golang mempunyai sokongan ungkapan biasa terbina dalam, yang boleh dilaksanakan menggunakan fungsi dalam pakej regexp
. Pelaksanaan khusus adalah seperti berikut:
import "regexp" func IsNumber(str string) bool { pattern := "^[0-9]+$" match, err := regexp.MatchString(pattern, str) if err != nil { return false } return match }
Dalam fungsi ini, kami menggunakan ungkapan biasa ^[0-9]+$
untuk memadankan rentetan angka tulen. MatchString
Fungsi mengembalikan nilai Boolean dan objek ralat, mengembalikan benar jika padanan berjaya, sebaliknya palsu. Perlu diingatkan bahawa jika terdapat masalah dengan ungkapan biasa itu sendiri, ralat akan dikembalikan.
Kaedah 3: Gunakan Unicode
Di Golang, setiap aksara mempunyai titik kod Unicode yang sepadan, dengan julat titik kod aksara angka ialah U+0030 hingga U+0039. Jadi, kita boleh mengetahui sama ada ia adalah nombor dengan menggelung melalui rentetan dan melihat titik kod Unicode bagi setiap aksara. Pelaksanaannya adalah seperti berikut:
func IsNumber(str string) bool { for _, char := range str { if char < '0' || char > '9' { return false } } return true }
Dalam fungsi ini, kami mengulangi setiap aksara dalam rentetan dan menyemak sama ada titik kod Unicodenya berada dalam julat aksara angka. Mengembalikan palsu jika mana-mana aksara bukan digit;
Ringkasnya, tiga kaedah di atas boleh digunakan untuk menentukan sama ada rentetan ialah nombor. Kaedah 1 dan 3 adalah lebih mudah, lebih pantas dan mempunyai kebolehgunaan yang lebih luas.
Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada ia adalah nombor dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!