Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

คำถาม fmt.Println() ต่างจาก println() อย่างไร ?

$
0
0

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

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

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

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

[gist id="ab21da3ae33ee015bab5f152880f7cc9" file="1.txt"]

จะเห็นได้ว่า 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


Viewing all articles
Browse latest Browse all 1997

Trending Articles