encoding/csv
Baca dan tulis CSV
encoding/csv adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.
Apa Itu CSV
CSV (nilai yang dipisahkan koma) menyimpan data tabular sebagai teks biasa, dengan satu rekaman per baris dan bidang yang dipisahkan oleh koma. Paket Go encoding/csv membaca dan menulisnya.
Membaca dari String
Buat pembaca dari io.Reader apa pun. strings.NewReader membungkus string agar kita dapat melakukan demonstrasi tanpa berkas.
package main
import (
"encoding/csv"
"fmt"
"strings"
)
func main() {
r := csv.NewReader(strings.NewReader("a,b,c"))
rec, _ := r.Read()
fmt.Println(rec)
}Membaca Semua Rekaman
ReadAll membaca setiap baris ke dalam [][]string. Setiap slice di dalamnya merupakan bidang-bidang dari satu rekaman.
package main
import (
"encoding/csv"
"fmt"
"strings"
)
func main() {
data := "name,age\nAnn,30\nBob,25"
r := csv.NewReader(strings.NewReader(data))
records, _ := r.ReadAll()
fmt.Println(records)
}Membaca Baris demi Baris
Untuk berkas besar, baca satu rekaman setiap kali dengan Read. Fungsi tersebut mengembalikan io.EOF saat selesai.
package main
import (
"encoding/csv"
"fmt"
"io"
"strings"
)
func main() {
r := csv.NewReader(strings.NewReader("a,1\nb,2"))
for {
rec, err := r.Read()
if err == io.EOF {
break
}
fmt.Println(rec)
}
}Mengakses Bidang
Setiap rekaman adalah slice string. Gunakan indeksnya untuk membaca sebuah kolom.
package main
import (
"encoding/csv"
"fmt"
"strings"
)
func main() {
r := csv.NewReader(strings.NewReader("Ann,30"))
rec, _ := r.Read()
fmt.Println("name:", rec[0], "age:", rec[1])
}Pemisah Khusus
Atur r.Comma untuk menggunakan pemisah yang berbeda, seperti titik koma atau tab.
package main
import (
"encoding/csv"
"fmt"
"strings"
)
func main() {
r := csv.NewReader(strings.NewReader("a;b;c"))
r.Comma = ';'
rec, _ := r.Read()
fmt.Println(rec)
}Menulis CSV
csv.NewWriter menulis rekaman. Panggil Flush untuk mengeluarkan data yang ditampung.
package main
import (
"encoding/csv"
"os"
)
func main() {
w := csv.NewWriter(os.Stdout)
w.Write([]string{"name", "age"})
w.Write([]string{"Ann", "30"})
w.Flush()
}Menulis Banyak Baris
WriteAll menulis seluruh [][]string sekaligus dan melakukan flush secara otomatis.
package main
import (
"encoding/csv"
"os"
)
func main() {
w := csv.NewWriter(os.Stdout)
rows := [][]string{{"a", "1"}, {"b", "2"}}
w.WriteAll(rows)
}Pemberian Tanda Kutip Otomatis
Penulis memberi tanda kutip pada bidang yang memuat koma, tanda kutip, atau baris baru, sehingga keluaran tetap menjadi CSV yang valid.
package main
import (
"encoding/csv"
"os"
)
func main() {
w := csv.NewWriter(os.Stdout)
w.Write([]string{"hello, world", "plain"})
w.Flush()
}Jangan Lupa Flush
Penulis menampung data. Jika Anda lupa memanggil Flush (dan tidak menggunakan WriteAll), beberapa baris mungkin tidak pernah ditulis. Selalu lakukan flush sebelum program berakhir.
Menangani Kesalahan
Setelah melakukan flush, periksa w.Error() untuk menangkap kegagalan penulisan yang terjadi selama data ditampung.
package main
import (
"encoding/csv"
"fmt"
"os"
)
func main() {
w := csv.NewWriter(os.Stdout)
w.Write([]string{"x", "y"})
w.Flush()
fmt.Fprintln(os.Stderr, w.Error())
}Pemeriksaan Singkat
Apa yang dikembalikan oleh ReadAll dari pembaca CSV untuk data yang telah diuraikan?
Ringkasan
encoding/csv:
csv.NewReaderdenganReadatauReadAllcsv.NewWriterdenganWrite/WriteAll, laluFlush- Atur
Commauntuk pemisah khusus; pemberian tanda kutip berlangsung otomatis
Pertanyaan yang Sering Diajukan
Apakah pelajaran “encoding/csv” gratis?
Ya — teks lengkap “encoding/csv” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “encoding/csv”?
Baca dan tulis CSV Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Go Academy?
Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “encoding/csv” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.