Apakah itu Pipe Equal Operator (=)?
Pemaju yang telah menemui operator pipe equal (|=) dalam sumber terbuka kod perpustakaan mungkin tertanya-tanya tentang maksudnya. Operator ini, sering disalah anggap sebagai penugasan logik, memegang operasi OR bitwise yang ketara.
Memahami Bitwise OR
Operator sama paip |= berfungsi sama dengan =. Dalam kod di bawah, operator |= menggabungkan nilai asal lalai dengan DEFAULT_SOUND malar:
notification.defaults |= Notification.DEFAULT_SOUND;
Operasi ini bersamaan dengan:
notification.defaults = notification.defaults | Notification.DEFAULT_SOUND;
di mana | menandakan operator bitwise ATAU.
Bitwise ATAU dalam Topeng Malar
Dalam contoh yang disediakan, pemalar DEFAULT_SOUND, DEFAULT_VIBRATE dan DEFAULT_LIGHTS ialah kuasa dua:
DEFAULT_SOUND = 1 DEFAULT_VIBRATE = 2 (1 << 1) DEFAULT_LIGHTS = 4 (1 << 2)
Ini membolehkan penggunaan bitwise ATAU untuk menambah atau mengalih keluar bendera. Contohnya:
int myFlags = DEFAULT_SOUND | DEFAULT_VIBRATE; // 001 | 010 = 011
Menambah bendera lain:
myFlags |= DEFAULT_LIGHTS;
hanya tambahkan bendera baharu.
Menguji Kehadiran Bendera
Pengendali bitwise AND (&) menguji kehadiran bendera:
boolean hasVibrate = (DEFAULT_VIBRATE & myFlags) != 0;
Jika keputusannya bukan sifar, bendera ditetapkan.
Atas ialah kandungan terperinci Apakah Tujuan Operator Pipe Equal (=) dalam Pengaturcaraan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!