ฉันสนใจตัวอย่าง c # ก่อนและหลังบางตัวอย่างที่ไม่ใช่สำนวนกับสำนวน ตัวอย่างที่ไม่ใช่ c # ก็ใช้ได้เช่นกันหากพวกเขาเข้าใจแนวคิดนี้ ขอบคุณ.
ฉันสนใจตัวอย่าง c # ก่อนและหลังบางตัวอย่างที่ไม่ใช่สำนวนกับสำนวน ตัวอย่างที่ไม่ใช่ c # ก็ใช้ได้เช่นกันหากพวกเขาเข้าใจแนวคิดนี้ ขอบคุณ.
คำตอบ:
สำนวนหมายถึงตามแบบแผนของภาษา คุณต้องการค้นหาวิธีที่ง่ายที่สุดและใช้บ่อยที่สุดในการทำงานให้สำเร็จแทนที่จะส่งต่อความรู้ของคุณจากภาษาอื่น
python ที่ไม่ใช่สำนวนโดยใช้ลูปพร้อมผนวก:
mylist = [1, 2, 3, 4]
newlist = []
for i in mylist:
newlist.append(i * 2)
python สำนวนโดยใช้ความเข้าใจในรายการ:
mylist = [1, 2, 3, 4]
newlist = [(i * 2) for i in mylist]
ตัวอย่างบางส่วน:
การจัดการทรัพยากรไม่ใช่สำนวน:
string content;
StreamReader sr = null;
try {
File.OpenText(path);
content = sr.ReadToEnd();
}
finally {
if (sr != null) {
sr.Close();
}
}
สำนวน:
string content;
using (StreamReader sr = File.OpenText(path)) {
content = sr.ReadToEnd();
}
การทำซ้ำไม่ใช่สำนวน:
for (int i=0;i<list.Count; i++) {
DoSomething(list[i]);
}
ยังไม่ใช่สำนวน:
IEnumerator e = list.GetEnumerator();
do {
DoSomenthing(e.Current);
} while (e.MoveNext());
สำนวน:
foreach (Item item in list) {
DoSomething(item);
}
การกรองไม่ใช่สำนวน:
List<int> list2 = new List<int>();
for (int num in list1) {
if (num>100) list2.Add(num);
}
สำนวน:
var list2 = list1.Where(num=>num>100);
รหัสสำนวนคือรหัสที่ทำงานทั่วไปในลักษณะทั่วไปสำหรับภาษาของคุณ คล้ายกับรูปแบบการออกแบบ แต่มีขนาดเล็กกว่ามาก สำนวนแตกต่างกันไปตามภาษา สำนวนหนึ่งใน C # อาจใช้ตัววนซ้ำเพื่อวนซ้ำผ่านคอลเลคชันแทนที่จะวนซ้ำ ภาษาอื่น ๆ ที่ไม่มีตัววนซ้ำอาจอาศัยสำนวนการวนซ้ำ
ใน PHP บางครั้งฉันพบรหัสเช่น:
foreach ($array as $value) {
$trimmed[] = trim($value);
}
return $trimmed;
ซึ่งสามารถดำเนินการตามสำนวนด้วย:
return array_map('trim', $array);
ในทางปฏิบัติหมายถึงการเขียนโค้ดในลักษณะที่สอดคล้องกันกล่าวคือนักพัฒนาทุกคนที่ทำงานบนฐานรหัสของคุณควรปฏิบัติตามข้อตกลงเดียวกันเมื่อเขียนโครงสร้างโค้ดที่คล้ายกัน
ดังนั้นวิธีที่ใช้สำนวนคือวิธีที่ตรงกับรูปแบบของโค้ดอื่น ๆ วิธีที่ไม่ใช่สำนวนหมายความว่าคุณกำลังเขียนประเภทของฟังก์ชัน แต่เป็นวิธีที่แตกต่างออกไป
เช่นหากคุณวนซ้ำรายการจำนวนหนึ่งคุณสามารถเขียนลูปได้หลายวิธี:
for (int i = 0; i < itemCount; i++)
for (int i = 1; i <= itemCount; i++)
for (int i = 0; i < itemCount; ++i)
ฯลฯ
สิ่งที่สำคัญที่สุดคือใช้สไตล์ที่เลือกอย่างสม่ำเสมอ วิธีนี้ทำให้ผู้คนคุ้นเคยและมั่นใจกับวิธีการใช้งานเป็นอย่างดีและเมื่อคุณสอดแนมการใช้งานที่ดูแตกต่างออกไปอาจเป็นสัญญาณของความผิดพลาดที่เกิดขึ้นซึ่งอาจเกิดจากข้อผิดพลาดเพียงครั้งเดียวเช่น
for (int i = 1; i < itemCount; i++)