Apakah jenis pergi dan sintaks titik?
editor php Strawberry akan memperkenalkan anda kepada jenis dan sintaks titik dalam bahasa Go. Dalam bahasa Go, jenis ialah atribut pembolehubah dan digunakan untuk menentukan jenis data pembolehubah. Jenis dalam bahasa Go termasuk jenis asas (seperti integer, jenis titik terapung, jenis Boolean, dll.) dan jenis komposit (seperti tatasusunan, kepingan, peta, dll.). Sintaks titik ialah sintaks yang digunakan untuk mengakses sifat dan kaedah struktur dan objek. Dengan menggunakan sintaks titik, kita boleh terus menggunakan sifat objek atau struktur atau memanggil kaedahnya untuk mengendalikan dan memproses data. Sintaks yang ringkas dan intuitif ini menjadikan bahasa Go lebih mudah dan cekap dalam pengaturcaraan.
Kandungan soalan
dmeo code
package listing12_9 import ( "runtime" "sync" "sync/atomic" ) type SpinLock int32 func (s *SpinLock) Lock() { for !atomic.CompareAndSwapInt32((*int32)(s), 0, 1) { runtime.Gosched() } } func (s *SpinLock) Unlock() { atomic.StoreInt32((*int32)(s), 0) } func NewSpinLock() sync.Locker { var lock SpinLock return &lock }
atomic.CompareAndSwapInt32((*int32)(s), 0, 1)
Apakah sintaks dan apakah maksud (*int) dan (s)?
Penyelesaian
Anda telah menentukan jenis di sini:
type SpinLock int32
Tetapi anda akan memanggil kaedah dalam pakej atom menggunakan spesifikasi berikut:
func CompareAndSwapInt32(addr *int32, old, new int32) (swapped bool)
Jadi untuk menghantar pembolehubah s jenis SpinLock ke CompareAndSwapInt32 kaedah anda perlu memberitahu pengkompil bahawa s< /strong> boleh digunakan sebagai int32, ini dipanggil dolang dan penukaran :
convertedValue := TargetType(variable)
Belajar Pengaturcaraan Serentak dalam Go, ia menggunakan penukaran pembolehubah s daripada jenis *SpinLock kepada *int32< 的老式方法strong>, pendekatan yang lebih moden mungkin:
type SpinLock int32 func (s SpinLock) Lock() { castedS := int32(s) for !atomic.CompareAndSwapInt32(&castedS, 0, 1) { runtime.Gosched() } } func (s SpinLock) Unlock() { castedS := int32(s) atomic.StoreInt32(&castedS, 0) atomic.StoreInt32(&castedS, 0) }
Atas ialah kandungan terperinci Apakah jenis pergi dan sintaks titik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Mengenai masalah tag struktur tersuai di Goland apabila menggunakan Goland untuk pembangunan bahasa Go, anda sering menghadapi beberapa masalah konfigurasi. Salah satu daripada mereka adalah ...

Perpustakaan mana yang dibangunkan oleh syarikat besar atau projek sumber terbuka yang terkenal? Semasa pengaturcaraan di GO, pemaju sering menghadapi beberapa keperluan biasa, ...

GO Pointer Syntax dan menangani masalah dalam penggunaan perpustakaan Viper semasa pengaturcaraan dalam bahasa Go, adalah penting untuk memahami sintaks dan penggunaan petunjuk, terutama dalam ...

Perbezaan antara percetakan rentetan dalam bahasa Go: perbezaan kesan menggunakan fungsi println dan rentetan () sedang ...

Strategi Pengoptimuman Prestasi untuk GO Language URL Access Massive Artikel ini mencadangkan penyelesaian pengoptimuman prestasi untuk masalah menggunakan bahasa Go untuk memproses akses URL secara besar -besaran. Program sedia ada dari CSV ...

Menggunakan Golang untuk melaksanakan Linux ...
