Paket Takma Adları
Coddy'nin GO Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 54 / 68.
Bazen içe aktarılan bir pakete dosyanız içinde farklı bir ad vermeniz gerekir. Buna paket takma adı oluşturma denir ve Go, basit bir söz dizimiyle bunu kolaylaştırır.
Bir takma ad oluşturmak için içe aktarma ifadenizde paket yolundan önce yeni adı belirtirsiniz:
import f "fmt"Artık fmt.Println() kullanmak yerine, daha kısa olan f.Println() kullanabilirsiniz. Bu, özellikle iki durumda yararlıdır: kısaltmak istediğiniz çok uzun paket adlarınız olduğunda veya aynı ada sahip paketler arasındaki ad çakışmalarını önlemeniz gerektiğinde.
package main
import f "fmt"
func main() {
f.Println("Hello with an alias!")
}Paket takma adı kullanımı, içe aktarılan paketlere nasıl başvurduğunuz konusunda esneklik sağlar; kodunuzu daha okunabilir hâle getirir ve karmaşık içe aktarma senaryolarını yönetmenize yardımcı olur.
Görev
KolayÖzel takma adlarla birden fazla paketi içe aktararak ve bunları çeşitli işlemleri gerçekleştirmek için kullanarak paket takma adlandırmayı gösteren bir program oluşturun. Bu görev, paketler için anlamlı takma adlar oluşturma ve bunları programınız boyunca tutarlı bir şekilde kullanma becerinizi test edecektir.
İki girdi alacaksınız:
"package1:alias1,package2:alias2,package3:alias3"biçiminde paket takma adı tanımlarını içeren bir dize (ör."fmt:output,strings:text,strconv:convert")"operation1:data1|operation2:data2|operation3:data3"biçiminde gerçekleştirilecek işlemleri içeren bir dize (ör."print:Hello World|upper:go programming|parse:42")
Göreviniz:
- Tek tek paket takma adı tanımlarını elde etmek için ilk girdiyi virgüllere göre bölün
- Her takma ad tanımı için, özgün paket adını ve takma adını elde etmek üzere iki nokta üst üste işaretlerine göre bölün
- Belirtilen takma adları kullanarak paketleri içe aktarın:
fmtpaketini sağlanan takma adla içe aktarınstringspaketini sağlanan takma adla içe aktarınstrconvpaketini sağlanan takma adla içe aktarın
- Takma ad ayarlama bilgilerini görüntüleyin:
"=== PACKAGE ALIAS DEMONSTRATION ===""Setting up package aliases:"- Her takma ad için:
"- [original_package] aliased as '[alias]'"
- Tek tek işlemleri elde etmek için ikinci girdiyi dikey çizgilere göre bölün
- Her işlem için, işlem türünü ve veriyi elde etmek üzere iki nokta üst üste işaretlerine göre bölün
- İşlem başlığını görüntüleyin:
"Performing operations using aliases:" - Her işlem için, takma ad verilmiş paketleri kullanarak karşılık gelen eylemi gerçekleştirin:
"print"işlemleri için:"[fmt_alias].Println: [data]"yazdırmak üzere fmt takma adını kullanın"upper"işlemleri için: Veriyi büyük harfe dönüştürmek ve"[strings_alias].ToUpper: [uppercase_data]"yazdırmak üzere strings takma adını kullanın"lower"işlemleri için: Veriyi küçük harfe dönüştürmek ve"[strings_alias].ToLower: [lowercase_data]"yazdırmak üzere strings takma adını kullanın"parse"işlemleri için: Veriyi bir tam sayı olarak ayrıştırmak ve"[strconv_alias].Atoi: [parsed_number]"yazdırmak üzere strconv takma adını kullanın"format"işlemleri için: Biçimlendirmek ve"[fmt_alias].Sprintf: Formatted -> [data]"yazdırmak üzere fmt takma adını kullanın
- İşlem istatistiklerini sayın ve görüntüleyin:
"Operation Summary:""Total operations performed: [total_operations]""Packages used: [comma_separated_list_of_aliases_used]"
- Takma ad kullanmanın avantajlarını görüntüleyin:
"Benefits demonstrated:""- Shorter function calls using aliases""- Improved code readability""- Avoided potential naming conflicts"
- Tamamlanma mesajını görüntüleyin:
"Package aliasing demonstration completed successfully"
Girdi dizelerini bölmek ve metinleri işlemek için strings paketini, dizeleri tam sayılara dönüştürmek için strconv paketini ve biçimlendirilmiş çıktı için fmt paketini kullanın. Özgün paket adları yerine programınız boyunca takma adları tutarlı bir şekilde kullanmayı unutmayın. Bu görev, paket takma adlandırmanın adlandırma çakışmalarını önlerken kodunuzu nasıl daha kısa ve okunabilir hâle getirebileceğini gösterir.
Kendin dene
package main
import (
"bufio"
f "fmt"
"os"
"sort"
c "strconv"
s "strings"
)
func main() {
// Boşlukları düzgün bir şekilde işlemek için bufio.Scanner kullanarak girişi oku
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
aliasInput := scanner.Text()
scanner.Scan()
operationsInput := scanner.Text()
// Takma ad (alias) tanımlarını ayrıştır
aliasDefinitions := s.Split(aliasInput, ",")
// İşlemleri ayrıştır
operations := s.Split(operationsInput, "|")
// TODO: Kodunuzu aşağıya yazın
// 1. Paket adını ve takma adını almak için her bir takma ad tanımını ayrıştırın (uzunlukları kontrol edin)
// 2. Paket takma adı gösterim başlığını ve kurulum bilgilerini görüntüleyin
// 3. Uygun takma adlı paketi kullanarak her bir işlemi gerçekleştirin
// 4. İşlemleri sayın ve hangi takma adların kullanıldığını takip edin (sırayı koruyun veya sıralayın)
// 5. İşlem özetini ve faydalarını görüntüleyin
// Programınız boyunca takma adları tutarlı bir şekilde kullanmayı unutmayın
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1İleri Seviye Kontrol Akışı
`fallthrough` ile Switchİç İçe Döngülerden ÇıkmaBelirli Bir Döngüye Devam Etme`goto` İfadesiÖzet - İleri Seviye Döngü Kontrolü4Proje: Basit Görev Listesi
Proje KurulumuGörev Ekleme2Structlar ve Metotlar
Structlarda Metot TanımlamaValue Receiver'larPointer Receiver'larReceiver SeçimiMetotlar ve FonksiyonlarÖzet - Struct Davranışı5Derinlemesine Map'ler
Struct Map'leriMap Değeri Olarak Pointer'larNil Map KontrolüMap'leri KarşılaştırmaÖzet - Kelime Frekansı Sayacı3Arayüzler (Temeller)
Arayüz Nedir?Bir Arayüz TanımlamaBir Arayüzü UygulamaArayüz Tiplerini KullanmaBoş ArayüzTip OnaylamalarıTip SeçimiÖzet - Şekiller ve Davranışlar6Deyimsel Go: Kümeler
Go'da Küme DeyimiBir Küme OluşturmaKümeye Eleman EklemeEleman Varlığını Kontrol EtmeKümeden Eleman SilmeKüme Üzerinde YinelemeÖzet - Benzersiz Kullanıcı Adları9Paketler ve Kapsam
Paket Nedir?Dışa Aktarılan ve AktarılmayanlarBasit Bir Paket OluşturmaPaket Takma AdlarıBoş Tanımlayıcı `_``init` FonksiyonuÖzet - Bir Yardımcı Araç OluşturmaKendi başına pratik yap: Online Go derleyicisi