จากการแบ่งปันเรื่องการพัฒนาระบบงานด้วยภาษา Go นั้น
มีคำถามว่า fmt.Println() ต่างจาก println() อย่างไร ?
สิ่งที่ตอบไปเป็นดังนี้

  • println() เป็น build-in function สร้างมาเพื่อการ debug เท่านั้น
  • fmt.Println() เป็น function ใน package fmt

ดูสั้น ๆ ไปหน่อย เลยขยายความหน่อย

เริ่มจากการไปดู code ของทั้งคู่เป็นดังนี้

จะเห็นได้ว่า println() นั้นรับค่าได้เพียง primitive type
พวก array และ ข้อมูลพวก structure ต่าง ๆ ก็ไม่รองรับ


ส่วน fmt.Println() ใด ๆ ก็ได้ any คือ interface{} นั่นเอง รวมทั้งยังมี return value นะ
เพราะว่าหลาย ๆ คนน่าจะยังไม่รู้มั้ง !!

อีกทั้งถ้าดูในการ implement แล้วนั้น
println() จะทำการส่งข้อมูลมายัง standard error
ส่วน fmt.Println() จะทำการส่งข้อมูลมายัง standard output

รวมทั้ง fmt.Println() จะมี dependency เยอะ เช่น log package เป็นต้น
ส่วน println() นั้นไม่มีเลย

TODO

Tags:,