Dalam bukunya "Accelerated C ," Koenig memperkenalkan konsep menggunakan operator ' ' untuk menggabungkan rentetan literal dan objek. Walaupun ini kelihatan mudah, terdapat nuansa halus yang boleh membawa kepada hasil yang tidak dijangka.
Pertimbangkan dua contoh berikut:
<code class="cpp">const string hello = "Hello"; const string message = hello + ",world" + "!";</code>
<code class="cpp">const string exclam = "!"; const string message = "Hello" + ",world" + exclam;</code>
Contoh pertama berjaya menggabungkan tiga rentetan. Walau bagaimanapun, contoh kedua gagal.
Untuk memahami percanggahan, kita mesti mempertimbangkan perkaitan pengendali ' '. Operator ' ' adalah bersekutu kiri ke kanan, bermakna ia menilai dari kiri ke kanan. Ini boleh membawa kepada tingkah laku yang tidak dijangka jika tidak diambil kira.
Dalam contoh kedua, ungkapan itu boleh dikurung sebagai:
<code class="cpp">const string message = ("Hello" + ",world") + exclam;</code>
Seperti yang anda lihat, dua rentetan literal, " Hello" dan ",world," digabungkan dahulu. Ini menghasilkan rentetan literal, yang tidak boleh digabungkan lagi dengan objek rentetan "exclam."
Terdapat beberapa cara untuk menyelesaikan isu ini:
<code class="cpp">const string message = string("Hello") + ",world" + exclam;</code>
<code class="cpp">const string message = "Hello" + (",world" + exclam);</code>
Pengendali ' ' direka untuk menggabungkan objek rentetan, bukan literal rentetan. Rentetan literal ialah tatasusunan aksara, dan apabila digunakan dalam ungkapan, ia ditukar kepada penunjuk kepada elemen awalnya. Menambah dua penunjuk, seperti dalam kes menggabungkan literal rentetan, tidak dibenarkan dalam C .
Walaupun anda tidak boleh menggabungkan literal rentetan menggunakan operator ' ', anda boleh gabungkannya dengan meletakkannya bersebelahan:
<code class="cpp">"Hello" ",world"</code>
Ini bersamaan dengan:
<code class="cpp">"Hello,world"</code>
Ini berguna untuk memecahkan literal rentetan panjang kepada berbilang baris.
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Menggabungkan Huruf Rentetan dan Objek Dengan Selamat Menggunakan Operator \' \'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!