Özet - Dinamik Listeler
Coddy'nin GO Journey'sinin Temeller bölümünün bir parçası — ders 83 / 109.
Görev
OrtaBasit bir alışveriş listesi yöneticisi oluşturarak Go'da slice'lar ile çalışma pratiği yapalım!
Göreviniz, bir alışveriş listesini manipüle eden birkaç fonksiyonu uygulamaktır:
addItems: Alışveriş listesine yeni öğeler ekleyinremoveItem: Listeden dizine göre bir öğeyi kaldırınfindExpensiveItems: Belirli bir eşiğin üzerindeki fiyatlara sahip öğeleri buluncalculateTotalCost: Tüm öğelerin toplam maliyetini hesaplayın
Alışveriş listesindeki her bir öğe bir string (ad) ve bir float64 (fiyat) ile temsil edilir. main fonksiyonu tüm bu işlemlerin birlikte çalışmasını gösterir.
Kendin dene
package main
import "fmt"
// addItems alışveriş listesine yeni ürünler ve fiyatlarını ekler
func addItems(names []string, prices []float64, newNames []string, newPrices []float64) ([]string, []float64) {
// Kodunuz buraya
return names, prices
}
// removeItem belirtilen indeksteki bir ürünü kaldırır
func removeItem(names []string, prices []float64, index int) ([]string, []float64) {
// Kodunuz buraya
return names, prices
}
// findExpensiveItems eşik değerinin üzerindeki fiyatlara sahip ürünleri döndürür
func findExpensiveItems(names []string, prices []float64, threshold float64) []string {
// Kodunuz buraya
return nil
}
// calculateTotalCost tüm fiyatların toplamını döndürür
func calculateTotalCost(prices []float64) float64 {
// Kodunuz buraya
return 0
}
func main() {
// Boş alışveriş listelerini başlat
names := []string{}
prices := []float64{}
// Başlangıç ürünlerini ekle
initialNames := []string{"Apples", "Milk", "Bread"}
initialPrices := []float64{2.99, 3.49, 2.29}
names, prices = addItems(names, prices, initialNames, initialPrices)
// Başlangıç alışveriş listesini yazdır
fmt.Println("Initial Shopping List:")
for i := range names {
fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
}
// Toplam maliyeti hesapla ve yazdır
total := calculateTotalCost(prices)
fmt.Printf("\nTotal Cost: $%.2f\n", total)
// Pahalı ürünleri bul ve yazdır
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 ekle
names, prices = addItems(names, prices, []string{"Cheese"}, []float64{4.99})
// Bir ürünü kaldır
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 Verme