Mengapa "abcd".StartsWith("") Returns True
Timbul persoalan: kenapa "abcd".StartsWith("" ) nilaikan kepada benar?
Jawapannya terletak pada konsep rentetan kosong. Rentetan kosong, seperti namanya, ialah rentetan dengan aksara sifar. Ia mewakili ketiadaan sebarang aksara.
Dalam konteks kaedah StartsWith, rentetan kosong dianggap sebagai "subrentetan" yang sah bagi mana-mana rentetan lain. Ini kerana, secara logiknya, rentetan kosong berlaku di antara setiap pasangan aksara dalam mana-mana rentetan.
Pertimbangkan takrifan "bermula dengan" berikut:
Dengan menggunakan takrifan ini, kita dapat melihat bahawa "abcd".StartsWith("") sememangnya benar. Rentetan kosong mempunyai sifar aksara, jadi panjangnya juga sifar. Aksara sifar pertama "abcd" juga merupakan padanan untuk aksara sifar pertama rentetan kosong. Oleh itu, "abcd" bermula dengan rentetan kosong.
Satu lagi takrifan setara "bermula dengan" ialah:
Definisi ini memberi kita cara lain untuk menggambarkan hasil "abcd".Bermula Dengan(""). Memanggil x.Substring(0, y.Length) mengekstrak subrentetan daripada x bermula pada indeks 0 dan berakhir sejurus sebelum indeks y.Length. Dalam kes ini, y.Length ialah sifar, jadi subrentetan yang diekstrak daripada "abcd" ialah rentetan kosong. Memandangkan rentetan kosong adalah sama dengan rentetan kosong y, kaedah StartsWith kembali benar.
Atas ialah kandungan terperinci Mengapa Adakah 'abcd'.StartsWith('') Kembali Benar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!