"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > واجهة الكتابة

واجهة الكتابة

نشر في 2025-02-06
تصفح:499

A interface Write

في GO ، الواجهات أساسية لتعزيز الأشكال المتعددة والتجريد. إنها بمثابة عقود تحدد مجموعة من الأساليب التي يجب تنفيذها ، مما يسمح بمعالجة أنواع مختلفة بشكل موحد ومرونة.

واجهات

في GO ، الواجهة هي نوع يحدد مجموعة من الأساليب دون تنفيذها. يحدد فقط توقيعات الطرق التي يجب أن يكون لدى النوع لتلبية الواجهة. يتيح ذلك معاملة أنواع مختلفة بشكل موحد طالما أنها تنفذ الأساليب المحددة بواسطة الواجهة. تعزز الواجهات تعدد الأشكال والتجريد ، مما يسهل إنشاء رمز مرن وقابل لإعادة الاستخدام.

io.writer

واجهة io.writer هي واحدة من أكثرها استخدامًا. تقوم عدة أنواع بتنفيذ هذه الواجهة ، بما في ذلك OS.File و Bytes.Buffer و Net.conn. هذا يسمح بمعالجة أنواع الكتابة المختلفة بشكل موحد ومرونة.

// الكاتب هي الواجهة التي تغلف عملية الكتابة الأساسية. اكتب واجهة الكاتب { اكتب (p [] بايت) (n int ، خطأ err) }

// Writer é a interface que encapsula a operação básica de escrita.
type Writer interface {
    Write(p []byte) (n int, err error)
}
    N: هذا هو عدد البايتات المكتوبة.
  • ERR: إنها قيمة نوع الخطأ تشير إلى ما إذا كانت أي أخطاء تحدث أثناء الكتابة.
    • أي نوع ينفذ طريقة الكتابة مع الاشتراك الصحيح سيعتبر io.writer.
    • لماذا the.writer io.writer؟

التجريد

: يسمح لك بمعالجة أنواع مختلفة من وجهات الكتابة بالتساوي.

المرونة
    : يسهل إنشاء أساليب عامة تقبل أي نوع يقوم بتنفيذ واجهة io.writer.
  • إعادة استخدام الكود : يمكن إعادة استخدام io.writer مع أنواع مختلفة من الوجهات ، مثل الملفات والمآخذ والمجال ، إلخ.
  • اختبار : يسمح لك بإنشاء نماذج وعبادة لاختبار الكود المعزول.
  • مثال حزمة رئيسية يستورد ( "FMT" "أنت" "io" ) Func Main () { var w io.writer = os.stoutout // w من نوع io.writer n ، err: = w.write ([] byte ("Hello ، World!"))))) إذا خطأ! fmt.println ("خطأ:" ، خطأ) } fmt.printf ("\ bbytes كتابات: ٪ b" ، ن) }
  • /tmp ➜ انتقل إلى example_io_writer.go مرحبا بالعالم! كتابات بايت: 1101 خاتمة
واجهة IO.Writer هي واحدة من أكثر الواجهات شيوعًا في GO. هذا يسهل إعادة استخدام الكود ، وإنشاء طرق عامة وكتابة الاختبارات. بالإضافة إلى ذلك ، تعزز واجهة io.writer تعدد الأشكال ، مما يسمح بأنواع مختلفة تنفذ الواجهة بشكل متبادل. يتم تنفيذها على نطاق واسع في العديد من حزم لغة GO القياسية ، مثل ، البايتات ، من بين أمور أخرى ، مما يدل على تعدد استخداماته وأهميته في النظام البيئي GO.

مراجع

package main

import (
  "fmt"
  "os"
  "io"
)

func main() {
  var w io.Writer = os.Stdout // w é do tipo io.Writer

  n, err := w.Write([]byte("Hello, World!"))
  if err != nil {
    fmt.Println("Erro:", err)
  }

  fmt.Printf("\bBytes escritos: %b", n)
}
https://pkg.go.dev/[email protected]#file.writal* https://pkg.go.dev/log/slog/internal/buffer#buffer.write* &&&] https://pkg.go.dev/[email protected]#connm&&&]
/tmp ➜ go run example_io_writer.go
Hello, World!
Bytes escritos: 1101
بيان الافراج يتم استنساخ هذه المقالة على: https://dev.to/fabianoflorentino/a-interface-write-11c5؟1 إذا كان هناك أي انتهاك ، فيرجى الاتصال بـ [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3