Menu
Coddy logo textTech

Tip Onaylamaları

Coddy'nin GO Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 17 / 68.

Arayüz değişkenleriyle çalışırken, genellikle bunların içinde depolanan gerçek somut değere erişmeniz gerekir. Tür doğrulamaları burada devreye girer; temel değeri güvenli bir şekilde çıkarmanıza ve kullanmanıza olanak tanır.

Bir tür doğrulaması şu sözdizimini kullanır: value, ok := interfaceVariable.(Type). İlk dönüş değeri, belirtilen türdeki çıkarılmış değerdir; ikinci değer ise doğrulamanın başarılı olup olmadığını belirten bir booleandır.

var data interface{} = 42

number, ok := data.(int)
if ok {
    fmt.Println("It's an integer:", number)
} else {
    fmt.Println("Not an integer")
}

ok değişkeni güvenlik için kritik öneme sahiptir. Yanlış türü onaylamaya çalışırsanız, ok değeri false olur ve value o türün sıfır değeri olur. ok kontrolü yapılmazsa, başarısız bir tür onayı programınızın paniklemesine yol açar.

interface{} değerleriyle çalışırken tür iddiaları çok önemlidir; genel arayüzü belirli bir türe dönüştürmenize olanak tanıyarak onun yöntemlerini ve işlemlerini kullanabilmenizi sağlar.

challenge icon

Görev

Kolay

Bu meydan okumada, arayüz değişkenlerinden somut değerleri güvenli bir şekilde çıkarmak ve bunlarla çalışmak için tür iddialarını kullanmayı pratik edeceksin. Boş arayüzlerde depolanan farklı değer türlerini işleyen bir veri analizcisi oluşturacaksın.

İki girdi alacaksın:

  • Kontrol edilecek veri türünü belirten bir dize (ör. "int", "string" veya "bool")
  • Gerçek değeri belirten bir dize (ör. "42", "hello" veya "true")

Görevin:

  1. Değer dizesini uygun Go türüne dönüştürmek ve bir interface{} değişkeninde depolamak:
    • "int" için: tamsayıya dönüştür
    • "string" için: dize olarak kullan
    • "bool" için: boolean'a dönüştür
  2. Arayüz değişkeninin ilk girdide belirtilen beklenen türü içerip içermediğini kontrol etmek için tür iddiasını kullanmak
  3. Tür iddiası başarılı olursa şunu yazdırmak: "Success: [value] is a [type]"
  4. Tür iddiası başarısız olursa şunu yazdırmak: "Failed: value is not a [type]"

İddianın başarılı olup olmadığını kontrol etmek için ok değişkeniyle güvenli tür iddiası söz dizimini kullanmalısın. Bu meydan okuma, programının paniğe kapılmasına neden olmadan arayüz değişkenlerinden somut değerleri güvenli bir şekilde nasıl çıkaracağını anladığını sınar.

Boolean dönüşümü için "true" değeri true değerine, diğer tüm dizeler ise false değerine dönüştürülmelidir. Dizeden tamsayıya dönüşüm için strconv paketini kullan.

GEREKLİ ÇIKTI BİÇİMİ: [Çevrilmiş içeriğin burada]

Kendin dene

package main

import (
	"fmt"
	"strconv"
)

func main() {
	// Girdiyi oku
	var dataType string
	var valueStr string
	fmt.Scanln(&dataType)
	fmt.Scanln(&valueStr)
	
	// Arayüz (interface) değerini saklamak için değişken
	var interfaceValue interface{}
	
	// TODO: Kodunuzu aşağıya yazın
	// 1. valueStr'yi dataType'a göre uygun türe dönüştürün ve interfaceValue içinde saklayın
	// 2. interfaceValue'nun beklenen türü içerip içermediğini kontrol etmek için tür onayı (type assertion) kullanın
	// 3. Uygun başarı veya hata mesajını yazdırın
	
}
quiz iconKendini test et

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

Kendi başına pratik yap: Online Go derleyicisi