Go Academy · Pelajaran

Antara Muka Writer

Tulis kepada apa sahaja

Pelajaran 2 daripada 413 langkah

Antara Muka Writer ialah pelajaran Go Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Go Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Go Academy merangkumi sejumlah 4 pelajaran.

Menulis kepada Apa-apa Sahaja

io.Writer menyatukan semua output: fail, rangkaian, penimbal, stdout dan respons HTTP. Satu antara muka, banyak destinasi.

Takrif Antara Muka

Kontraknya:

  • Write(p []byte) (n int, err error)

Ia menulis p dan mengembalikan bilangan bait yang telah ditulis serta sebarang ralat.

Menulis kepada Buffer

bytes.Buffer melaksanakan io.Writer dan mengumpulkan output dalam memori.

package main

import (
	"bytes"
	"fmt"
)

func main() {
	var buf bytes.Buffer
	buf.Write([]byte("Hello, "))
	buf.WriteString("Writer!")
	fmt.Println(buf.String())
}

Menulis kepada Stdout

os.Stdout ialah io.Writer. Begitu juga os.Stderr.

package main

import (
	"io"
	"os"
)

func main() {
	io.WriteString(os.Stdout, "straight to stdout\n")
}

fmt.Fprintf dan Penulis

Keluarga Fprint menulis teks berformat kepada mana-mana io.Writer.

package main

import (
	"bytes"
	"fmt"
)

func main() {
	var buf bytes.Buffer
	fmt.Fprintf(&buf, "x = %d\n", 42)
	fmt.Print(buf.String())
}

Ralat Penulisan Pendek

Jika Write mengembalikan n < len(p) dengan ralat nil, itu ialah pelanggaran kontrak yang dipanggil penulisan pendek. Penulis yang mematuhi kontrak melaporkannya sebagai io.ErrShortWrite.

Fungsi yang Menerima Penulis

Tulis fungsi yang menerima io.Writer supaya logik yang sama boleh menyasarkan fail, penimbal atau rangkaian.

package main

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

func greet(w io.Writer, name string) {
	fmt.Fprintf(w, "Hi, %s\n", name)
}

func main() {
	greet(os.Stdout, "Ada")
}

Nyahgandingan Keluaran untuk Ujian

Oleh sebab fungsi menerima io.Writer, ujian boleh menangkap keluaran ke dalam bytes.Buffer dan membuat penegasan terhadapnya — tidak perlu menyentuh fail sebenar.

package main

import (
	"bytes"
	"fmt"
)

func emit(w *bytes.Buffer) { fmt.Fprint(w, "result") }

func main() {
	var b bytes.Buffer
	emit(&b)
	fmt.Println("captured:", b.String())
}

Menulis Bait berbanding Rentetan

Write menerima hirisan bait; io.WriteString ialah kemudahan untuk rentetan yang mengelakkan peruntukan apabila penulis menyokongnya.

package main

import (
	"io"
	"os"
)

func main() {
	os.Stdout.Write([]byte("bytes\n"))
	io.WriteString(os.Stdout, "string\n")
}

Sentiasa Semak Ralat Penulisan

Penulisan ke fail atau soket boleh gagal di tengah-tengah strim (cakera penuh, sambungan terputus). Semak ralat yang dikembalikan, terutamanya untuk penulis bukan memori.

Satu Antara Muka, Banyak Sasaran

  • Fail, penimbal, stdout/stderr
  • Penulis respons HTTP
  • Pembalut pemampatan dan penyulitan

Semuanya memenuhi io.Writer, jadi kod anda tidak bergantung pada destinasi.

Semakan Pantas

Uji pengetahuan anda tentang io.Writer.

Ulang Kaji

Anda telah mempelajari antara muka keluaran teras.

  • Write(p []byte) (int, error) ialah keseluruhan kontrak
  • bytes.Buffer, os.Stdout dan respons HTTP semuanya melaksanakannya
  • Berfungsi dengan fmt.Fprintf dan io.WriteString
  • Terima io.Writer untuk API yang fleksibel dan mudah diuji
Percuma untuk bermula

Pelajari Go dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
51
Pelajaran
203

Soalan Lazim

Adakah pelajaran “Antara Muka Writer” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Go Academy, termasuk “Antara Muka Writer”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Go Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Antara Muka Writer”?

Tulis kepada apa sahaja Anda berlatih Go Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Go Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Go Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Antara Muka Writer” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Go Academy ini?

Ya. Setiap pelajaran Go Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Antara Muka Reader
  2. Antara Muka Writer
  3. Fungsi Utiliti io
  4. Melaksanakan Reader Tersuai
← Kembali ke Go Academy