พอดีเพิ่งลองทำ project ส่วนตัว เพื่อแก้ไขปัญหาบางอย่างของตัวเอง
ซึ่งทำการเขียน code ด้วยภาษา Go นี่แหละ
มีขั้นหนึ่งต้องทำการ filter ข้อมูลที่อยู่ใน array/slice
ปกติก็ใช้งาน for loop กับ if statement นี่แหละ

แต่ก่อนหน้านี้ เพิ่งเขียน JavaScript มา
ซึ่งมีพวก map/reduce/filter อะไรพวกนี้ให้
แล้วในภาษา Go ละ มีไหมนะ ?

ก็เลยลองไปหาและดูใน community ก็เจอเยอะเลย

มี project ตัวนึงของคุณ Rob Pike ชื่อว่า Filter
ซึ่งมี พวก map/reduce/filter ให้ใช้งานด้วย
เป็น project ที่สร้างขึ้นมาเพื่อทดลอง

การใช้งานในกรณีของผมก็ไม่ยาก
ต้องการเพียง filter หรือกรองข้อมูลที่ต้องการเท่านั้น

ดังนั้นเขียน function ของเงื่อนไขในการกรองสิ่งที่ต้องการดังนี้

จากนั้นก็ใช้งาน filter ที่สร้างดังนี้

เพียงเท่านี้ก็ใช้งานแบบง่าย ๆ ได้แล้ว
โดยส่วนตัวผมชอบในเรื่องของการใช้งาน
เพราะว่าง่าย สะดวก ดูง่ายดีนะ

ไปดูแนวทางการสร้าง project filter หน่อยสิ

ใช้งาน package reflect นั่นเอง 
ดังนั้นก็ต้องระวังการใช้งานมาก ๆ ในตอน runtime
แน่นอนว่า ต้องป้องกันด้วยการเขียน test ให้ครอบคลุมนั่นเอง

แนวทางน่าสนใจมาก ๆ  
ทั้งเรื่องของแนวคิดและเทคนิคที่ใช้ในการสร้าง
แต่สุดท้าย ผู้สร้างบอกว่า ใช้ for loop นั่นแหละดีแล้ว !!

ลองไปดูการพูดคุยเกี่ยวกับ project filter เพิ่มได้
หรือไปดู project ที่คล้าย ๆ กันเช่น Go-funk
หรือไปดู Map/Reduce/Filter in Go

ลองทำ project เล่น ๆ แต่ก็ได้ความรู้ที่เราคาดไม่ถึงเยอะเลย
ขอให้สนุกกับการ coding ครับ

Tags: