Özet - Dinamik Listeler
Coddy'nin GO Journey'sinin Temeller bölümünün bir parçası. Ders 83 / 109.
Görev
OrtaGo'da dilimlerle çalışmayı basit bir alışveriş listesi yöneticisi oluşturarak uygulayalım!
Görevin, alışveriş listesini değiştiren birkaç işlevi uygulamak:
addItems: Alışveriş listesine yeni öğeler ekleremoveItem: Listedeki bir öğeyi dizinine göre kaldırfindExpensiveItems: Fiyatı belirli bir eşiğin üzerindeki öğeleri bulcalculateTotalCost: Tüm öğelerin toplam maliyetini hesapla
Alışveriş listesindeki her öğe bir string (ad) ve bir float64 (fiyat) ile temsil edilir. Main işlevi, tüm bu işlemlerin birlikte nasıl çalıştığını gösterir.
Kendin dene
package main
import "fmt"
// addItems, alışveriş listesine yeni ürünleri ve fiyatlarını ekler
func addItems(names []string, prices []float64, newNames []string, newPrices []float64) ([]string, []float64) {
// Kodunuzu buraya yazın
return names, prices
}
// removeItem, belirtilen index konumundaki ürünü kaldırır
func removeItem(names []string, prices []float64, index int) ([]string, []float64) {
// Kodunuzu buraya yazın
return names, prices
}
// findExpensiveItems, fiyatı eşik değerin üzerinde olan ürünleri döndürür
func findExpensiveItems(names []string, prices []float64, threshold float64) []string {
// Kodunuzu buraya yazın
return nil
}
// calculateTotalCost, tüm fiyatların toplamını döndürür
func calculateTotalCost(prices []float64) float64 {
// Kodunuzu buraya yazın
return 0
}
func main() {
// Boş alışveriş listelerini oluşturun
names := []string{}
prices := []float64{}
// İlk ürünleri ekleyin
initialNames := []string{"Apples", "Milk", "Bread"}
initialPrices := []float64{2.99, 3.49, 2.29}
names, prices = addItems(names, prices, initialNames, initialPrices)
// İlk alışveriş listesini yazdırın
fmt.Println("Initial Shopping List:")
for i := range names {
fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
}
// Toplam maliyeti hesaplayıp yazdırın
total := calculateTotalCost(prices)
fmt.Printf("\nTotal Cost: $%.2f\n", total)
// Pahalı ürünleri bulup yazdırın
priceThreshold := 3.00
expensiveItems := findExpensiveItems(names, prices, priceThreshold)
fmt.Printf("\nExpensive Items (above $%.2f):\n", priceThreshold)
for _, item := range expensiveItems {
fmt.Println(item)
}
// Yeni bir ürün ekleyin
names, prices = addItems(names, prices, []string{"Cheese"}, []float64{4.99})
// Bir ürünü kaldırın
names, prices = removeItem(names, prices, 1)
fmt.Println("\nRemoved item at index 1")
// Son alışveriş listesini yazdır
fmt.Println("\nFinal Shopping List:")
for i := range names {
fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
}
}Temeller bölümündeki tüm dersler
4Karşılaştırma ve Mantıksal Operatörler
Karşılaştırma Operatörleri - Bölüm 1Karşılaştırma Operatörleri - Bölüm 2Mantıksal VE OperatörüMantıksal VEYA OperatörüMantıksal DEĞİL OperatörüOperatör Önceliği TemelleriÖzet - Karşılaştırma Yapma7Kontrol Akışı: Döngüler
`for` Döngüsü Nedir?`for` Döngüsü - Temel`for` Döngüsü - Sadece Koşul`break` Anahtar Kelimesi`continue` Anahtar Kelimesiİç İçe DöngülerÖzet - İşlemleri Tekrarlama2Değişkenler ve Temel Veri Tipleri
Değişken nedir?`:=` ile Tür ÇıkarımıTam Sayılar (int)Ondalıklı SayılarBooleanlarStringlerSıfır DeğerlerSabitlerİsimlendirme KurallarıÖzet - Değişkenler ve Türler5Temel Giriş/Çıkış
Biçimlendirilmiş ÇıktıBiçim BelirteçleriVeri Tiplerini YazdırmaTemel Kullanıcı Girdisi AlmaÖzet - Giriş ve Çıkış8Fonksiyonlar
Fonksiyonları AnlamakFonksiyon TanımlamaFonksiyonları ÇağırmaFonksiyon ParametreleriTek Bir Değer DöndürmeBirden Fazla Değer Döndürmeİsimlendirilmiş Dönüş DeğerleriFonksiyon Kapsamı TemelleriÖzet - Yeniden Kullanılabilir Kod Oluşturma3Temel Operatörler
Aritmetik OperatörlerBölme OperatörüModulo OperatörüAtama OperatörüBileşik Atama OperatörleriArtırma ve AzaltmaÖzet - Hesaplamalar6Kontrol Akışı: Koşullu İfadeler
`if` İfadesi`else` Anahtar Kelimesi`else if` Anahtar Kelimesi`if` İçinde Değişken GölgelemeDeğişkenleri Başlatma`switch` İfadesiİfadeli `switch`İfadesiz `switch``fallthrough` Anahtar KelimesiÖzet - Karar VermeKendi başına pratik yap: Online Go derleyicisi