Pandangan Lebih Dekat pada Pipe Equal Operator "|=": Manipulasi Bitwise Disahkan
Dalam bidang pengaturcaraan, sejumlah besar pengendali memperkasakan pengkod untuk memanipulasi data dan melakukan pengiraan. Antaranya, pengendali "|=" yang sukar difahami boleh menyebabkan ramai yang menggaru kepala. Pengendali yang penuh teka-teki ini, yang sering ditemui dalam repositori sumber terbuka, memegang kunci untuk memahami operasi bitwise.
Pengendali "|=" pada asasnya ialah bentuk operasi tugasan ringkas yang melibatkan pengendali OR bitwise ("|") . Ia menyerupai pengendali "=" (tugasan) tetapi dengan aksara paip tambahan ("|"), memberikan cara yang elegan untuk mengubah suai pembolehubah sasaran.
Sebagai contoh, pertimbangkan coretan kod berikut:
<code class="java">Notification notification = new Notification(icon, tickerText, when); notification.defaults |= Notification.DEFAULT_SOUND; notification.defaults |= Notification.DEFAULT_VIBRATE;</code>
Di sini, pengendali "|=" digunakan untuk menambah bendera pada sifat "lalai" objek "pemberitahuan". Ia bersamaan dengan bentuk dikembangkan berikut:
<code class="java">notification.defaults = notification.defaults | Notification.DEFAULT_SOUND; notification.defaults = notification.defaults | Notification.DEFAULT_VIBRATE;</code>
Seperti yang anda mungkin telah meneka, pemalar "Notification.DEFAULT_SOUND" dan "Notification.DEFAULT_VIBRATE" membawa nilai bendera yang diwakili sebagai kuasa dua:
<code class="java">public static final int DEFAULT_SOUND = 1; public static final int DEFAULT_VIBRATE = 2; // equivalent to 1 << 1 or 10 in binary
Menggunakan operasi OR bitwise membolehkan manipulasi bendera yang cekap. Menambah bendera adalah semudah melakukan operasi bitwise ATAU:
<code class="java">int myFlags = DEFAULT_SOUND | DEFAULT_VIBRATE; // 001 | 010 -> 011 myFlags |= DEFAULT_LIGHTS;</code>
Sebaliknya, ujian jika bendera ditetapkan boleh dicapai menggunakan operator bitwise AND ("&"):
<code class="java">boolean hasVibrate = (DEFAULT_VIBRATE & myFlags) != 0;</code>
Memahami operator bitwise OR dan penggunaannya bersama dengan operator pipe equal adalah asas kepada pemahaman kod dan penyahpepijatan. Dengan merungkai selok-belok manipulasi bitwise, anda boleh membuka kunci potensi penuh pengendali "|=" dan memanfaatkan kuasanya untuk memanipulasi bendera dengan mudah.
Atas ialah kandungan terperinci Bila dan Cara Memanfaatkan Kuasa Operator Sama Paip \'|=\'. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!