เราจะมักจะเห็นข้อมูลแบบ []byte
อยู่หลายที่ใน standard package ของ Go ไม่ว่าจะเป็น io.Reader
, io.Writer
interface หรือจะใน package net/http
และใน encoding/json
slice ของ byte เนี่ยมันก็แค่ลำดับของตัวเลขที่มีในช่วง 0-255 หลายๆตัว ซึ่งถ้าเราพิพม์ออกมาดูเนี่ย จะไม่รู้เลยว่ามันหมายถึงอะไร ที่เป็นแบบนี้เพราะมันคือ raw data ยังไงล่ะ
raw data จุดที่ถูกใช้ก็คือ จุดที่เราใช้ส่งข้อมูลโดยที่ไม่สนใจรูปแบบของข้อมูล ไม่ว่าจะเป็นเรื่อง IO (Input/Output) ที่ต้องส่งต่อให้อุปกรณ์ภายนอกหรือคุยกับ OS (Operating System) หรือคุยกับ Network พวก package net/http
ที่ต้องส่งข้อมูลผ่าน protocol HTTP และข้อมูลที่ต้องผ่านการ encode/decode ต่างๆพวก package ในกลุ่ม encoding
ไม่ว่าจะเป็น encoding/json
, encoding/xml
พวกนี้ข้อมูลต้องถูกแปลงไป แปลงมา ระหว่าง format ต้นทาง กับ raw data ([]byte
) เพื่อให้ปลายทางไปแปลงกลับอีกรอบได้
แต่อย่างไรก็ตามเราเองอาจจะไม่ได้จัดการ []byte
เองโดยตรงเท่าไหร่เพราะมี package ในการแปลงข้อมูลให้เราอยู่แล้ว อย่างมากก็อาจจะแปลงจาก string ไปเป็น []byte
แล้วแปลงกลับเป็น string อีกที ยกเว้นก็แต่เราต้องเขียน package เพื่อจัดการอะไรในระดับ protocol หรือ I/O ในระดับล่างๆ หรือจัดการแปลง raw data ไปมาเป็น format ที่ยังไม่เคยมีใครทำมาก่อน
Top comments (0)