Override Method in go

การ override method ในภาษา go นั้นทำได้ง่ายมากๆ ยกตัวอย่างเช่น     ตัวอย่างนี้เราใช้ฟังกชัน tell เป็นตัวทำงานโดยรับ interface ชื่อว่า car ที่มี method ชื่อ color และ model tell จะบอก model และ color ของ car ให้เราทราบ จากนั้นเราก็สร้าง toyota โดยมี method color และ model มาใส่ให้ tell เมื่อลองรันดูจะได้คำว่า “Fortuner silver” ทีนี้เราลองสร้าง honda โดย override ฟังก์ชัน model แล้วเปลี่ยนเป็น CRV แทน ทีนี้ tell จะแสดงข้อความว่า “CRV silver” […]

Continue reading →

ฟังก์ชันครอบฟังก์ชัน

บอกตรงๆ ผมตั้งชื่อบทความนี้ไม่ถูกเลยทีเดียว เราลองมาดูกันครับ เริ่มต้นจากความต้องการก่อนนะครับว่าผมต้องการอะไร สิ่งที่ผมต้องการคือ http handler ตัวหนึ่ง แต่เนื่องจากเมื่อวันเวลาผ่านไป ผมก็เริ่มมี handler เพิ่มขึ้นเรื่อยๆ และมีงานหลายๆอย่างที่ทำซ้ำๆเกิดขึ้น เช่นเขียน log เป็นต้น ทำให้ผมเริ่มคิดอยากจะห่อเจ้า handler ด้วยฟังก์ชันที่จะมาช่วยทำงานซ้ำๆแบบปิดหัวปิดท้ายได้ จึงเกิดบทความนี้ครับ เพื่อไม่ให้เสียเวลา มาดูโค้ดก่อนเลยดีกว่า

Continue reading →

วิธีเปลี่ยน xml เป็น json

หนึ่งในงานแรกๆของผมกับภาษาโกนั้น เกี่ยวข้องกับ xml และ json มาก วันนี้เลยอยากมาแบ่งปันสักหนึ่งเรื่อง ขอเป็นการเแปลง xml ไปเป็น json อย่างง่ายๆก็แล้วกันนะครับ เรามาดู code กันเลยดีกว่า

Continue reading →

การเขียน method on struct

คราวที่แล้วผมอธิบายการจำลอง method on struct ซึ่งอาจจะข้ามขั้นตอนไปหน่อย สำหรับมือใหม่ วันนี้เลยอยากจะขออธิบายว่าการสร้าง method on struct ว่าเป็นอย่างไรสักหน่อยดีกว่า การสร้าง method on struct ในภาษาโก ทำให้เราสามารถเขียนฟังก์ชัน ให้กับโครงสร้างข้อมูล(struct) ได้ คล้ายๆกับการเขียนคลาสในภาษาออบเจ็กต์ เช่น

Continue reading →

การ mock method on struct

หากใครเริ่มเขียนภาษาโก ใหม่ๆ การเขียนเทสเป็นเรื่องที่ โก สนับสนุนเครื่องมือมาให้เราพร้อม ส่วนที่เหลือก็แค่เขียนมันออกมาเท่านั้น และด่านสำคัญในการเขียนเทสของหลายๆคน หรือบางคน ที่ทำให้นั่งมองหน้าจออยู่สักพักแล้วก็นิ่งไป ก็คือการ จำลอง (mock) ผมอยากจะยกตัวอย่างการ จำลอง แบบง่ายๆก่อน โดยวิธีง่ายสุดคือ สร้างตัวแปรเป็นฟังก์ชันแบบนี้ var Method = func() { … } ฟังก์ชันแบบนี้เราจำลองง่ายมาก โดยสามารถเขียนซ้ำแบบเดียวกันเข้าไปในเทสได้เลย แต่วันนี้อยากจะมาแนะนำการ จำลอง ฟังก์ชัน ที่ผูกติดอยู่กับโครงสร้าง (struct) เช่น type presenter struct {} func (p *presenter) method() { … }

Continue reading →

เขียนเทสภาษาโก

เริ่มเขียนเทสแบบง่ายที่สุดกันก่อน เพื่อสร้างความมั่นใจกันดีกว่า โดยเริ่มจากสร้างโฟล์เดอร์ src/first ใน gopath แล้วสร้างไฟล์ชื่อ hi_test.go แล้วพิมพ์แบบนี้ลงไป

Continue reading →

เริ่มเขียนภาษาโก (golang) อย่างไร

ส่วนตัวผมไม่มีวิชาการอะไรให้นะครับ เพียงแค่อยากแนะนำให้คนที่เริ่มอยากจะลองภาษานี้ หรือใครเพิ่งมาเห็นครั้งแรกได้หัดทดลองเขียนภาษานี้กัน เริ่มต้นจากทำความรู้จักภาษานี้กันก่อนที่ http://golang.org/ โดย download มาติดตั้งกันให้คุ้นเคย จากนั้นกำหนดค่าต่างๆดังนี้

Continue reading →