Semua orang tahu, setidaknya dalam C, Anda menggunakan printf
kumpulan fungsi untuk mencetak string yang diformat. Dan fungsi-fungsi ini menggunakan tanda persen ( %
) untuk menunjukkan awal penentu format. Misalnya, %d
berarti untuk mencetak int
, dan %u
berarti untuk mencetak unsigned int
. Jika Anda tidak terbiasa dengan cara printf
fungsi dan format placeholder bekerja, atau hanya perlu penyegaran, artikel Wikipedia adalah tempat yang baik untuk memulai.
Pertanyaan saya adalah, apakah ada alasan kuat mengapa ini awalnya atau harus dipilih di masa depan sebagai penentu format?
Jelas keputusan itu dibuat sejak lama (sangat mungkin untuk pendahulu bahkan bahasa C), dan itu sudah lebih atau kurang "standar" sejak saat itu (tidak hanya dalam bahasa C, tetapi juga dalam berbagai bahasa lain yang telah mengadopsi sintaksnya ke berbagai derajat), jadi sudah terlambat untuk berubah. Tapi saya masih penasaran apakah ada yang punya wawasan tentang mengapa pilihan ini mungkin telah dibuat di tempat pertama, dan apakah masih masuk akal sebagai pilihan jika seseorang merancang bahasa baru dengan fungsi yang sama.
Sebagai contoh, dengan C # (dan keluarga lain dari bahasa .NET), Microsoft membuat keputusan yang sedikit berbeda mengenai pengoperasian fungsi pemformatan string. Meskipun beberapa tingkat keamanan jenis dapat ditegakkan di sana (tidak seperti penerapan printf
di C), dan oleh karena itu tidak perlu menyertakan indikasi jenis parameter yang sesuai, mereka memutuskan untuk menggunakan pasangan kurung kurawal yang tidak diindekskan ( {}
) sebagai penentu format, seperti:
string output = String.Format("In {0}, the temperature is {1} degrees Celsius.",
"Texas", 37);
Console.WriteLine(output);
// Output:
// In Texas, the temperature is 37 degrees Celsius.
Dokumentasi untuk String.Format
metode ini berisi lebih banyak informasi, seperti halnya artikel ini tentang pemformatan komposit secara umum , tetapi detail yang tepat agak tidak penting. Intinya adalah bahwa mereka meninggalkan praktik lama menggunakan %
untuk menunjukkan awal penentu format. Bahasa C bisa saja dengan mudah digunakan {d}
dan {u}
, tetapi tidak. Adakah yang memiliki pemikiran tentang mengapa, apakah keputusan ini masuk akal jika ditinjau kembali, dan apakah implementasi baru harus mengikutinya?
Jelas tidak ada karakter yang bisa dipilih yang tidak harus bisa diloloskan sehingga bisa dimasukkan ke dalam string itu sendiri, tetapi masalah itu sudah diselesaikan dengan cukup baik dengan hanya menggunakan dua dari mereka. Pertimbangan lain apa yang relevan?
{u}
daripada %u
tetapi apakah itu memiliki keuntungan yang signifikan? Sepertinya pilihan yang sebagian besar sewenang-wenang.
{}
sintaks sehingga orang yang belajar C # tidak akan mulai belajar hal lain? Saya merasa sangat sulit untuk percaya bahwa itu adalah bagian utama, jika ada, keputusan desain mereka. Bisakah Anda membuat cadangan pernyataan Anda entah bagaimana?
%
memformat dalam mendukung sesuatu yang mirip dengan {}
format .NET karena yang terakhir menawarkan lebih banyak fleksibilitas.