تبدیل داده ها به باینری با استفاده از Gob | گولنگ به زبان ساده
۲۶ مهر ۱۴۰۴
با Gob آشنا میشویم و یاد میگیریم چطور برای تبدیل اطلاعات به فرمت باینری میتوان از Gob استفاده کنیم.
برای انتقال اطلاعات از طریق شبکه و یا ذخیره آنها در یک فایل, بهتر است اطلاعات را به یک فرمت خاص انکد (encode) کرد. روش های زیادی مانند JSON, XML, Protobuffer وجود دارند اما یک روش دیگر نیز وجود دارد که توسط پکیج gob در گولنگ قابل استفاده است.
در گولنگ یک پکیج با نام gob وجود دارد که با استفاده از آن میتوان اطلاعات را به فرمت باینری اینکد(encode) و دیکد(decode) کرد. برای برقراری ارتباط بین دو اپلیکیشن نوشته شده با Go میتوان با استفاده از gob اطلاعات را به باینری تبدیل (encode) و سپس از حالت باینری خارج کرد (decode).
این روش نسبت به روش های استاندارد مانند JSON , XML و protobuffer مزایا و معایبی دارد.
مزایای استفاده از Gob
داده ها به باینری تبدیل میشوند بنابراین دارای حجم کمتری نسبت به XML و JSON خواهند بود. در هنگام انتقال اطلاعات, هرچه حجم داده ها کمتر باشد انتقال داده ها سریعتر انجام خواهد شد.
پشتیبانی از ساختار های پیچیده ی Go مثل pointer, map, struct و ...
دارای پرفورمنس بالا و نیاز به پیاده سازی ساده
معایب استفاده از Gob
فقط در گولنگ قابل استفاه است بنابراین اگر اپلیکیشن های شما به زبان های مختلفی نوشته شده اند نمیتوان از Gob به عنوان یک فرمت انتقال داده بین اپلیکیشن های خود استفاده کنید.
در هنگام دیکد کردن اطلاعات, هیچ اعتبار سنجی بر روی دادهها انجام نمیشود. بنابراین gob مناسب داده های ناشناس یا بدون اعتبار سنجی نیست.
نحوه استفاده از Gob
با استفاده از پکیج gob به صورت زیر میتوانیم داده ها را به باینری تبدیل کنیم:
با استفاده از تابع NewEncoder جایی که قرار است داده ها نوشته شوند را مشخص میکنیم و در نهایت با استفاده از تابع Encode اطلاعات را به فرمت باینری تبدیل میکنیم. در مثال بالا داده ها به صورت باینری درون فایلی با نام contacts.gob نوشته میشوند.
همچنین برای دیکد کردن داده ها از فرمت gob به دیتاهای درون گولنگ میتونیم به صورت زیر عمل کنیم:
در مثال بالا اطلاعاتی که با فرمت باینری در فایل contacts.gob ذخیره شده اند را دیکد و درون contactsToLoad قرار میدهیم و در نهایت در خروجی استاندارد چاپ میکنیم.
محتوای این پست بر اساس منابع زیر نوشته شده است:
کدهای مرتبط با این پست را میتوانید درون رپازیتوری گیت هاب ما پیدا کنید.
قسمت قبل: جیسان (JSON) | گولنگ به زبان ساده
قسمت بعد: معرفی پکیج استاندارد RPC | گولنگ به زبان ساده