Menu
CoddyTech

any ve all

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

any() ve all(), bir dizinin tamamı hakkında evet-hayır sorusu sorar. Her ikisi de tek bir öğe için true veya false döndüren bir işlev alır:

  • any(), işlev en az bir öğe için true döndürürse true döndürür.
  • all(), işlev her öğe için true döndürürse true döndürür.
var enemy_hp = [30, 0, 12]
print(enemy_hp.any(func(hp): return hp == 0))
print(enemy_hp.all(func(hp): return hp > 0))
true
false

Bir düşmanın 0 can puanı var, bu yüzden any() true olur ve aynı düşman all() değerini false yapar.

Her ikisi de yanıt bilinir bilinmez durur: any() ilk true değerinde, all() ilk false değerinde. Adlandırılmış işlevlerle de çalışırlar; örneğin numbers.all(is_even).

Boş bir dizide, any() hiçbir öğe koşulu sağlamadığı için false döndürür ve all() hiçbir öğe koşulu sağlamadığından true döndürür.

Bayrak değişkenli bir döngü yerine bunları bir koşulda kullanın:

var inventory = ["sword", "key", "rope"]
if inventory.any(func(item): return item == "key"):
	print("The door opens")
challenge icon

Görev

Kolay

Program, virgülle ayrılmış puanlardan oluşan tek bir satırı okur ve bunları numbers dizisinde saklar. Bu kısım zaten yazılmıştır.

İki satır yazdır:

  1. Any perfect: ve ardından puanlardan en az biri 100 ise true, aksi hâlde false
  2. All passed: ve ardından her puan 50 veya daha yüksekse true, aksi hâlde false

İlk satır için any(), ikinci satır için all() kullan. 100,75,40 girdisi için çıktı şöyledir:

Any perfect: true
All passed: false

Kendin dene

extends Node

func _ready():
	var numbers := []
	for part in OS.read_string_from_stdin().split(","):
		numbers.append(int(part))
	# İki satırı any() ve all() kullanarak yazdır
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 GDScript derleyicisi