Avatar ·

كيفية تحويل سلسلة نصية إلى شريحة بايت ([]byte) في Go؟

مرحباً بالجميع! لقد بدأت للتو في تعلم Go وواجهت مشكلة تبدو بسيطة، لكنني لا أستطيع إيجاد الحل الصحيح.

لدي سلسلة نصية:

s := "Hello, World!"

أحتاج إلى تحويلها إلى شريحة بايت []byte لتمريرها إلى دالة تقبل هذا النوع تحديداً. جربت عدة خيارات لكنها تسبب أخطاء في الترجمة أو panic.

إليك ما جربته:

package main

import "fmt"

func main() {
    s := "Hello, World!"
    // الخيار 1: مباشرة
    var b []byte = s
    fmt.Println(b)

    // الخيار 2: عبر make و copy
    b2 := make([]byte, len(s))
    b2 = s
    fmt.Println(b2)
}

الخيار الأول يعطي: cannot use s (type string) as type []byte in assignment. الثاني أيضاً لا يعمل: cannot use s (type string) as type []byte in assignment.

أفهم أن السلسلة النصية وشريحة البايت هما نوعان مختلفان