Alias Paket
Termasuk bagian Logika & Alur dalam perjalanan GO di Coddy. Pelajaran 54 dari 68.
Terkadang, kamu perlu memberi package yang diimpor nama lain di dalam file-mu. Ini disebut pemberian alias package, dan Go membuatnya mudah dengan sintaks yang sederhana.
Untuk membuat alias, tentukan nama baru sebelum path package dalam pernyataan import:
import f "fmt"Sekarang, alih-alih menggunakan fmt.Println(), kamu bisa menggunakan f.Println() yang lebih singkat. Ini sangat berguna dalam dua situasi: saat nama package sangat panjang dan ingin kamu singkat, atau saat kamu perlu menghindari bentrokan nama antara package yang memiliki nama sama.
package main
import f "fmt"
func main() {
f.Println("Hello with an alias!")
}Alias package memberimu fleksibilitas dalam merujuk package yang diimpor, membuat kodemu lebih mudah dibaca dan membantumu mengelola skenario impor yang rumit.
Tantangan
MudahBuat program yang menunjukkan penggunaan alias package dengan mengimpor beberapa package menggunakan alias khusus dan memakainya untuk melakukan berbagai operasi. Tantangan ini akan menguji kemampuanmu membuat alias yang bermakna untuk package dan menggunakannya secara konsisten di seluruh programmu.
Kamu akan menerima dua input:
- Sebuah string yang berisi definisi alias package dalam format
"package1:alias1,package2:alias2,package3:alias3"(misalnya,"fmt:output,strings:text,strconv:convert") - Sebuah string yang berisi operasi yang akan dilakukan dalam format
"operation1:data1|operation2:data2|operation3:data3"(misalnya,"print:Hello World|upper:go programming|parse:42")
Tugasmu adalah:
- Urai input pertama dengan memisahkannya berdasarkan koma untuk mendapatkan definisi alias package satu per satu
- Untuk setiap definisi alias, pisahkan berdasarkan titik dua untuk mendapatkan nama package asli dan aliasnya
- Impor package menggunakan alias yang ditentukan:
- Impor
fmtdengan alias yang diberikan - Impor
stringsdengan alias yang diberikan - Impor
strconvdengan alias yang diberikan
- Impor
- Tampilkan informasi penyiapan alias:
"=== PACKAGE ALIAS DEMONSTRATION ===""Setting up package aliases:"- Untuk setiap alias:
"- [original_package] aliased as '[alias]'"
- Urai input kedua dengan memisahkannya berdasarkan karakter pipa untuk mendapatkan operasi satu per satu
- Untuk setiap operasi, pisahkan berdasarkan titik dua untuk mendapatkan jenis operasi dan data
- Tampilkan header operasi:
"Performing operations using aliases:" - Untuk setiap operasi, lakukan tindakan yang sesuai menggunakan package beralias:
- Untuk operasi
"print": Gunakan alias fmt untuk mencetak"[fmt_alias].Println: [data]" - Untuk operasi
"upper": Gunakan alias strings untuk mengubah data menjadi huruf besar dan mencetak"[strings_alias].ToUpper: [uppercase_data]" - Untuk operasi
"lower": Gunakan alias strings untuk mengubah data menjadi huruf kecil dan mencetak"[strings_alias].ToLower: [lowercase_data]" - Untuk operasi
"parse": Gunakan alias strconv untuk mengurai data sebagai bilangan bulat dan mencetak"[strconv_alias].Atoi: [parsed_number]" - Untuk operasi
"format": Gunakan alias fmt untuk memformat dan mencetak"[fmt_alias].Sprintf: Formatted -> [data]"
- Untuk operasi
- Hitung dan tampilkan statistik operasi:
"Operation Summary:""Total operations performed: [total_operations]""Packages used: [comma_separated_list_of_aliases_used]"
- Tampilkan manfaat penggunaan alias:
"Benefits demonstrated:""- Shorter function calls using aliases""- Improved code readability""- Avoided potential naming conflicts"
- Tampilkan pesan penyelesaian:
"Package aliasing demonstration completed successfully"
Gunakan package strings untuk memisahkan string input dan memanipulasi teks, package strconv untuk mengonversi string menjadi bilangan bulat, dan package fmt untuk output berformat. Ingat untuk menggunakan alias secara konsisten di seluruh programmu, bukan nama package aslinya. Tantangan ini menunjukkan bagaimana penggunaan alias package dapat membuat kodemu lebih ringkas dan mudah dibaca sekaligus menghindari konflik nama.
Coba sendiri
package main
import (
"bufio"
f "fmt"
"os"
"sort"
c "strconv"
s "strings"
)
func main() {
// Baca input dengan bufio.Scanner agar spasi tertangani dengan benar
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
aliasInput := scanner.Text()
scanner.Scan()
operationsInput := scanner.Text()
// Uraikan definisi alias
aliasDefinitions := s.Split(aliasInput, ",")
// Uraikan operasi
operations := s.Split(operationsInput, "|")
// TODO: Tulis kodemu di bawah ini
// 1. Uraikan setiap definisi alias untuk mendapatkan nama package dan alias (periksa panjangnya)
// 2. Tampilkan judul demonstrasi alias package dan informasi penyiapan
// 3. Proses setiap operasi menggunakan package beralias yang sesuai
// 4. Hitung operasi dan catat alias yang digunakan (pertahankan urutannya atau urutkan)
// 5. Tampilkan ringkasan operasi dan manfaatnya
// Ingatlah untuk menggunakan alias secara konsisten di seluruh programmu
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika & Alur
1Alur Kontrol Lanjutan
switch dengan `fallthrough`Keluar dari Perulangan BersarangMelanjutkan Perulangan TertentuPernyataan `goto`Rangkuman, Kontrol Perulangan Lanjutan4Proyek: Daftar Tugas Sederhana
Menyiapkan ProyekMenambahkan Tugas2Struct dan Method
Mendefinisikan Method pada StructPenerima NilaiPenerima PointerMemilih PenerimaMethod vs FungsiRekap: Perilaku Struct5Map secara Mendalam
Map Berisi StructPointer sebagai Nilai MapMenguji Map NilMembandingkan MapRingkasan: Penghitung Frekuensi Kata8Proyek: Inventaris Sederhana
Gambaran Umum ProyekMemeriksa Stok3Interface (Dasar)
Apa Itu Interface?Mendefinisikan InterfaceMengimplementasikan InterfaceMenggunakan Tipe InterfaceInterface KosongType AssertionType SwitchRingkasan: Bentuk dan PerilakuLatihan sendiri: Compiler Go online