ลองใช้ Boo ในที่ทำงาน
ตอนเขียนโปรแกรมติดต่อพวกอุปกรณ์ภายนอก ส่วนมากมักจะใช้ serial port รับส่งคำสั่งเป็น string
ข้อมูลที่รับมาก็ต้องเอามาผ่านตัว parser ก่อนจะแตกเป็นข้อมูลเอามาประมวลผล ซึ่งข้อมูลที่ส่งกลับมามักจะเป็นลิสต์ของ Hex ลักษณะนี้
[A5,B8,77,99,00,43,6F]
ปกติจะใช้ไลบรารีที่มีคนทำไว้ แต่บางทีเราก็ต้่องการอะไรด่วนๆง่ายๆ ต้องการแค่ดูข้อมูลไหลเข้าออก แค่นั้น
โดยทั่วๆไป ก็ใช้พวกโปรแกรมที่ตั้งให้ส่งข้อมูลเป็นชุดๆ ได้ อย่างพวก DockLight
แต่เราอยากให้มันประมวลผลได้ด้วย จะได้ดูข้อมูลผลลัพธ์ได้ง่ายๆ
Boo มีไวยากรณ์ของภาษาที่สนับสนุนในการจัดการอะไรพวกนี้อยู่แล้ว (slicing, generator) เราก็จัดการได้ง่ายๆ เช่นเราอ่านข้อมูลเข้ามาเป็น
text = [4C,4F,56,45]
ต้องการให้แสดงข้อมูลเป็นรหัส Ascii ของข้อมูลชุดนี้ แล้วก็แสดงค่าที่เป็น Hex ไว้ข้างๆด้วย
เขียนเป็นโค้ด Boo ง่ายๆ
ขั้นแรกแปลงให้เป็นลิสต์ของ int ก่อน
result = [int.Parse(s, NumberStyles.HexNumber) for s in text[1:-1].Split(char(','))]
แล้วก็แปลงให้เป็นผลลัพธ์ที่ต้องการ
stringResult = [Convert.ToChar(i) for i in result].Join("")
hexResult = [i.ToString("X2") for i in result].Join(",")
ใน Boo มี built-in function ที่ชื่อ join ไว้ให้เราอาจเขียนแบบนี้ก็ได้
stringResult = join([Convert.ToChar(i) for in in result], "")
hexResult = join([i.ToString("X2") for i in result], ",")
ได้ผลลัพธ์เหมือนกัน