Menu
Coddy logo textTech

Birden Fazla Değer Döndürme

Coddy'nin GO Journey'sinin Temeller bölümünün bir parçası — ders 56 / 109.

Go fonksiyonları aynı anda birden fazla değer döndürebilir; bu da hem sonuçları hem de hata bilgilerini döndürmek için son derece kullanışlıdır.

Hem bölümü hem de kalanı döndüren bir fonksiyon oluşturun:

func divide(a, b int) (int, int) {
    quotient := a / b
    remainder := a % b
    return quotient, remainder
}

func main() {
    q, r := divide(7, 3)
    fmt.Println("7 ÷ 3 =", q, "with remainder", r)
}

Bu programı çalıştırdığınızda şu çıktıyı verir:

7 ÷ 3 = 2 with remainder 1

Fonksiyon virgülle ayrılmış iki değer döndürür ve biz atama sırasında birden fazla değişken kullanarak her iki değeri de yakalarız.

Döndürülen değerlerden yalnızca birine ihtiyacınız varsa, diğerini görmezden gelmek için boş tanımlayıcıyı (blank identifier) _ kullanabilirsiniz. Örneğin, yalnızca bölümü almak için:

q, _ := divide(7, 3)
fmt.Println("Quotient:", q)

_ kalanı atar, böylece derleyici kullanılmayan bir değişken hakkında hata vermez.

challenge icon

Görev

Başlangıç

Bu meydan okumada, Go'da bir fonksiyondan birden fazla değer döndürme pratiği yapacaksınız.

Bir kişinin adını, yaşını ve öğrenci olup olmadığını döndürmesi gereken getPersonInfo adında bir fonksiyonumuz var. Göreviniz, uygun dönüş ifadesini ekleyerek fonksiyonu tamamlamaktır.

Kopya kağıdı

Go fonksiyonları aynı anda birden fazla değer döndürebilir. Parantez içinde birden fazla dönüş türü belirtin ve virgülle ayrılmış birden fazla değer döndürün:

func divide(a, b int) (int, int) {
    quotient := a / b
    remainder := a % b
    return quotient, remainder
}

Atamada birden fazla değişken kullanarak birden fazla dönüş değerini yakalayın:

q, r := divide(7, 3)

Kendin dene

package main

import "fmt"

// Bu fonksiyon üç değer döndürmelidir: name, age ve isStudent
func getPersonInfo() (string, int, bool) {
	// Değişkenler sizin için zaten tanımlandı
	name := "Alex"
	age := 25
	isStudent := true
	
	// TODO: Üç değerin tümünü döndürün (name, age, isStudent)
	
}

func main() {
	// Fonksiyonu çağırın ve döndürülen değerleri saklayın
	name, age, isStudent := getPersonInfo()
	
	// Değerleri yazdırın
	fmt.Printf("Name: %s\n", name)
	fmt.Printf("Age: %d\n", age)
	fmt.Printf("Is Student: %t\n", isStudent)
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler