Koleksiyonlar
Query İşlemleri
filtrele, sırala, aggregate ve ^.
Sorgu üyeleri heveslidir, kaynağı değiştirmez ve (koleksiyon üretenler) yeni koleksiyon döndürür.
^ yalnız sorgu/transform lambdasındaki geçerli öğedir; dön ^ oluşturmaz.
Uyumluluk matrisi
Aşağıdaki tablo collection-api-matrix.json kaynağından üretilir (katalog applies_to + §17).
| API | liste | dizi | küme | sözlük | sliste | Mutasyon? |
|---|---|---|---|---|---|---|
adet | ✓ | — | ✓ | ✓ | ✓ | hayır |
uzunluk | — | ✓ | — | — | — | hayır |
ekle | ✓ | — | ✓ | ✓ | ✓ | evet |
kaldır | ✓ | — | ✓ | — | ✓ | evet |
içerir | ✓ | — | ✓ | — | ✓ | hayır |
[i] | ✓ | ✓ | — | — | ✓ | hayır |
filtrele | ✓ | ✓ | ✓ | — | ✓ | hayır |
sırala | ✓ | ✓ | ✓ | — | ✓ | hayır |
tsırala | ✓ | ✓ | ✓ | — | ✓ | hayır |
tersÇevir | ✓ | ✓ | ✓ | — | ✓ | hayır |
benzersiz | ✓ | ✓ | ✓ | — | ✓ | hayır |
atla | ✓ | ✓ | ✓ | — | ✓ | hayır |
sınırla | ✓ | ✓ | ✓ | — | ✓ | hayır |
ilk | ✓ | ✓ | ✓ | — | ✓ | hayır |
ilkYadaBoş | ✓ | ✓ | ✓ | — | ✓ | hayır |
bul | ✓ | ✓ | ✓ | — | ✓ | hayır |
varMı | ✓ | ✓ | ✓ | — | ✓ | hayır |
tümü | ✓ | ✓ | ✓ | — | ✓ | hayır |
adet(yüklem) | ✓ | ✓ | ✓ | — | ✓ | hayır |
toplam | ✓ | ✓ | ✓ | — | ✓ | hayır |
ortalama | ✓ | ✓ | ✓ | — | ✓ | hayır |
min | ✓ | ✓ | ✓ | — | ✓ | hayır |
maks | ✓ | ✓ | ✓ | — | ✓ | hayır |
✓ desteklenir; — bu bellek içi tipte yok veya tanı hatası. Mutasyon: kaynak örneği değişir.
Boş koleksiyon
varMı boşta yanlış; tümü boşta doğru; toplam boşta 0; ilk boşta US1515; ortalama/min/maks boşta US1516; ilkYadaBoş/bul boşta ~.
İlgili konular
Liste · Koleksiyon İşlemleri · Null ve Nullable
Referans
Bu sayfa 19 katalog öğesini kapsar. Aşağıdaki maddeler language-spec, örnekler ve katalog alanlarından üretilmiştir.
^
İşlevi
^ sorgu veya dönüşüm lambdasındaki geçerli öğedir. Genel değişken değildir; dön döngüsü ^ oluşturmaz.
Ne zaman kullanılır?
filtrele, seç ve benzeri sorgu/transform lambdalarında geçerli öğeye erişirken kullanın.
İşlenenler ve sonuç
Örnek: liste.filtrele(^.yaş \>= 18). İç içe sorguda her seviye kendi ^ bağını kullanır. Sorgu dışı kullanım geçersizdir.
Kullanım
yetişkinler: liste<Kullanıcı> = kullanıcılar.filtrele(^.yaş >= 18)Örnek
model Kullanıcı{ ad: metin yaş: tamsayı} kullanıcılar: liste<Kullanıcı> = [ @Kullanıcı { ad = "Ali" yaş = 20 }, @Kullanıcı { ad = "Ayşe" yaş = 17 }] yetişkinler: liste<Kullanıcı> = kullanıcılar.filtrele(^.yaş >= 18)dön yetişkinler -> kullanıcı{ syaz kullanıcı.ad}Çıktı
Ali
Geçersiz örnek
x: tamsayı = ^^ sorgu/transform lambda dışında geçerli öğe değildir; dön de ^ oluşturmaz.
Dikkat edilmesi gerekenler
dönöğesi-\> değişkenile adlandırılır;^değildir.- İç sorgu kendi
^değerini bağlar.
İlgili konular
Liste · Lambda · Operatörler · Modeller
filtrele
Ne yapar?
filtrele yükleme uyan öğelerden yeni koleksiyon üretir; kaynağı değiştirmez. Heveslidir; sırayı korur. Her öğe için ^ yüklemi bir kez çalışır.
Ne zaman kullanılır?
Koşula uyan öğeleri ayırırken kullanın.
Sonuç ve koleksiyonlar
Biçim: koleksiyon.filtrele(^.…) veya filtrele(fonksiyon(^)). Sonuç yeni koleksiyondur. Boş kaynak veya eşleşme yoksa boş koleksiyon. &&/|| kısa devresi yüklem içinde geçerlidir. ^ yalnız sorgu lambdasındadır; dön ^ oluşturmaz.
Kullanım
yetişkinler: liste<Kullanıcı> = kullanıcılar.filtrele(^.yaş >= 18)Basit örnek
model Kullanıcı{ ad: metin yaş: tamsayı aktif: mantıksal}kullanıcılar: liste<Kullanıcı> = [ @Kullanıcı { ad = "Ali" yaş = 20 aktif = doğru }, @Kullanıcı { ad = "Ayşe" yaş = 17 aktif = doğru }, @Kullanıcı { ad = "Mehmet" yaş = 35 aktif = yanlış }]aktifler: liste<Kullanıcı> = kullanıcılar.filtrele(^.aktif && ^.yaş >= 18)syaz "{aktifler.adet}"syaz "{kullanıcılar.adet}"Çıktı
1 3
Geçersiz örnek
sayı: tamsayı = 1sayı.filtrele(doğru)US0852 — koleksiyon olmayan alıcıda sorgu üyesi.
Dikkat edilmesi gerekenler
- Kaynağı değiştirmez; yeni koleksiyon üretir.
- Hevesli: hemen maddileşir.
- Sıra korunur;
^öğe başına bir kez. - Gezinti sırasında kaynak mutasyonu US1519.
- Bellek içi sözlük bu sorgu üyesinin öğe tipini çözmez; sözlükte adet/ekle kullanın. Veritabanı tablo sorgusu ayrıdır.
Uygulandığı koleksiyonlar: koleksiyon
İlgili konular
sırala
Ne yapar?
sırala artan sıralı yeni koleksiyon üretir; kaynağı değiştirmez. Eşit anahtarlar kaynak sırasını korur. metin karşılaştırması ordinaldir (kültür bağımsız). Sıralanamayan anahtar US0853.
Ne zaman kullanılır?
Artan sırada yeni bir görünüm gerektiğinde kullanın.
Sonuç ve koleksiyonlar
Biçim: koleksiyon.sırala() veya sırala(^.alan). Anahtar seçici öğe başına bir kez. Sayı ve karakter sıralanabilir. Boş kaynak → boş sonuç.
Kullanım
sıralı: liste<Satır> = satırlar.sırala(^.puan)artan: liste<metin> = adlar.sırala()Basit örnek
model Satır{ ad: metin puan: tamsayı}satırlar: liste<Satır> = [ @Satır { ad = "A" puan = 1 }, @Satır { ad = "B" puan = 1 }]sıralı: liste<Satır> = satırlar.sırala(^.puan)dön sıralı -> satır{ syaz satır.ad}Çıktı
A B
Dikkat edilmesi gerekenler
- Kaynağı değiştirmez; yeni koleksiyon üretir.
- Artan sıralama; azalan için
tsırala. - Eşit anahtarlarda kaynak sırası korunur.
- metin ordinaldir;
büyük/küçükbu kuraldan ayrıdır. - Sıralanamayan anahtar US0853.
- Bellek içi sözlük bu sorgu üyesinin öğe tipini çözmez; sözlükte adet/ekle kullanın. Veritabanı tablo sorgusu ayrıdır.
Uygulandığı koleksiyonlar: koleksiyon
İlgili konular
tsırala
Ne yapar?
tsırala azalan (ters) sıralı yeni koleksiyon üretir; t ters sıralama demektir. Kaynağı değiştirmez. Eşit anahtarlar kaynak sırasını korur. metin ordinaldir. Sıralanamayan anahtar US0853.
Ne zaman kullanılır?
Azalan sırada yeni bir görünüm gerektiğinde kullanın.
Sonuç ve koleksiyonlar
Biçim: koleksiyon.tsırala() veya tsırala(^.alan). sırala ile aynı anahtar kuralları; yön azalandır.
Kullanım
azalan: liste<metin> = adlar.tsırala()sıralı: liste<Kullanıcı> = kullanıcılar.tsırala(^.puan)Basit örnek
adlar: liste<metin> = ["Ayşe", "Ali"]sıralı: liste<metin> = adlar.tsırala()syaz sıralı[0]Çıktı
Ayşe
Dikkat edilmesi gerekenler
- Kaynağı değiştirmez; yeni koleksiyon üretir.
tters (azalan) sıralama anlamına gelir.- Sıralanamayan anahtar US0853.
- Bellek içi sözlük bu sorgu üyesinin öğe tipini çözmez; sözlükte adet/ekle kullanın. Veritabanı tablo sorgusu ayrıdır.
Uygulandığı koleksiyonlar: koleksiyon
İlgili konular
tersÇevir
Ne yapar?
tersÇevir öğe sırasını ters çeviren yeni koleksiyon döndürür; kaynağı değiştirmez.
Ne zaman kullanılır?
Mevcut sıranın tersini yeni bir koleksiyon olarak alırken kullanın.
Sonuç ve koleksiyonlar
Biçim: koleksiyon.tersÇevir() → yeni koleksiyon (alıcı tipinde). Kaynak adet ve sıra aynı kalır.
Kullanım
ters: liste<tamsayı> = sayılar.tersÇevir()Basit örnek
sayılar: liste<tamsayı> = [1, 2]sayılar.ekle(3)ters: liste<tamsayı> = sayılar.tersÇevir()syaz "{sayılar.adet}"syaz "{sayılar[0]}"syaz "{ters[0]}"Çıktı
3 1 3
Dikkat edilmesi gerekenler
- Kaynağı değiştirmez; yeni koleksiyon üretir.
- Yeni koleksiyon üretir; kaynak sabit kalır.
^kullanmaz.- Bellek içi sözlük bu sorgu üyesinin öğe tipini çözmez; sözlükte adet/ekle kullanın. Veritabanı tablo sorgusu ayrıdır.
Uygulandığı koleksiyonlar: koleksiyon
İlgili konular
benzersiz
Ne yapar?
benzersiz yinelenenleri eleyerek yeni koleksiyon üretir; ilk görüleni tutar. Kaynağı değiştirmez.
Ne zaman kullanılır?
Tekil öğe dizisi gerektiğinde kullanın.
Sonuç ve koleksiyonlar
Biçim: koleksiyon.benzersiz(). Eşitlikte ilk görünüm korunur. Modeller alan eşitliğiyle karşılaştırılabilir.
Kullanım
tek: liste<tamsayı> = sayılar.benzersiz()Basit örnek
sayılar: liste<tamsayı> = [1, 1, 2]tek: liste<tamsayı> = sayılar.benzersiz()syaz "{tek.adet}"syaz "{tek[0]}"Çıktı
2 1
Dikkat edilmesi gerekenler
- Kaynağı değiştirmez; yeni koleksiyon üretir.
- İlk görülen tutulur; sonraki eşitler düşer.
- Bellek içi sözlük bu sorgu üyesinin öğe tipini çözmez; sözlükte adet/ekle kullanın. Veritabanı tablo sorgusu ayrıdır.
Uygulandığı koleksiyonlar: koleksiyon
İlgili konular
atla
Ne yapar?
atla baştan verilen sayıda öğeyi atlayıp kalanlardan yeni koleksiyon üretir; sırayı korur. Kaynağı değiştirmez. Negatif sabit veya çalışma anı değeri US0849.
Ne zaman kullanılır?
Pencereleme veya sayfalama başlangıcını kaydırırken kullanın.
Sonuç ve koleksiyonlar
Biçim: koleksiyon.atla(n) — n tamsayı, negatif olamaz. Boş kaynak veya n ≥ adet → boş sonuç.
Kullanım
pencere: liste<tamsayı> = sayılar.atla(1).sınırla(2)Basit örnek
sayılar: liste<tamsayı> = [1, 2, 3, 4]pencere: liste<tamsayı> = sayılar.atla(1).sınırla(2)syaz "{pencere.adet}"syaz "{pencere[0]}"syaz "{pencere[1]}"Çıktı
2 2 3
Geçersiz örnek
sayılar: liste<tamsayı> = [1]sayılar.atla(-1)US0849 — atla/sınırla negatif olamaz.
Dikkat edilmesi gerekenler
- Kaynağı değiştirmez; yeni koleksiyon üretir.
- Negatif US0849 (tanı veya çalışma zamanı).
- Bellek içi sözlük bu sorgu üyesinin öğe tipini çözmez; sözlükte adet/ekle kullanın. Veritabanı tablo sorgusu ayrıdır.
Uygulandığı koleksiyonlar: koleksiyon
İlgili konular
sınırla
Ne yapar?
sınırla en fazla verilen sayıda öğeden yeni koleksiyon üretir; sırayı korur. Kaynağı değiştirmez. Negatif US0849.
Ne zaman kullanılır?
Üst sınırlı pencere veya ilk N öğe gerektiğinde kullanın.
Sonuç ve koleksiyonlar
Biçim: koleksiyon.sınırla(n) — n tamsayı, negatif olamaz. Kaynak daha kısaysa tümü kopyalanır.
Kullanım
üst: liste<Kullanıcı> = sonuç.sınırla(10)Basit örnek
sayılar: liste<tamsayı> = [1, 2, 3, 4]pencere: liste<tamsayı> = sayılar.atla(1).sınırla(2)syaz "{pencere.adet}"Çıktı
2
Geçersiz örnek
sayılar: liste<tamsayı> = [1]sayılar.sınırla(-1)US0849 — sınırla negatif olamaz.
Dikkat edilmesi gerekenler
- Kaynağı değiştirmez; yeni koleksiyon üretir.
- Negatif US0849.
atlaile zincirlenebilir; kaynak değişmez.- Bellek içi sözlük bu sorgu üyesinin öğe tipini çözmez; sözlükte adet/ekle kullanın. Veritabanı tablo sorgusu ayrıdır.
Uygulandığı koleksiyonlar: koleksiyon
İlgili konular
ilk
Ne yapar?
ilk ilk öğeyi veya yüklemli ilk eşleşeni verir. Eşleşme yoksa veya koleksiyon boşsa US1515. Sonuç öğe tipidir (T), nullable değildir. Kaynağı değiştirmez.
Ne zaman kullanılır?
İlk öğenin kesinlikle var olduğunu varsaydığınızda kullanın; yoksa ilkYadaBoş / bul.
Sonuç ve koleksiyonlar
Biçim: koleksiyon.ilk() veya ilk(^.…). Yüklem isteğe bağlıdır. Boş/eşleşme yok → US1515. Nullable sonuç için ilkYadaBoş veya bul.
Kullanım
sayılar: liste<tamsayı> = [4, 5]syaz "{sayılar.ilk()}"Basit örnek
sayılar: liste<tamsayı> = [4, 5]syaz "{sayılar.ilk()}"Çıktı
4
Geçersiz örnek
sayılar: liste<tamsayı> = []sayılar.ilk()US1515 — boş koleksiyonda ilk.
Dikkat edilmesi gerekenler
- Boş veya eşleşme yoksa US1515;
~dönmez. - Yüklemli
ilkYadaBoşilebulaynı nullable sonucu üretir;ilkfırlatır. - Bellek içi sözlük bu sorgu üyesinin öğe tipini çözmez; sözlükte adet/ekle kullanın. Veritabanı tablo sorgusu ayrıdır.
Uygulandığı koleksiyonlar: koleksiyon
İlgili konular
ilkYadaBoş
Ne yapar?
ilkYadaBoş sonuç tipi T? dir; bulamazsa ~ döner. Yazım tam olarak ilkYadaBoş (büyük B). Yüklemli biçimi bul ile aynı sonucu üretir. Kaynağı değiştirmez.
Ne zaman kullanılır?
İlk öğe veya eşleşme yoksa ~ kabul edilebilir olduğunda kullanın.
Sonuç ve koleksiyonlar
Biçim: koleksiyon.ilkYadaBoş() veya ilkYadaBoş(^.…). Dönüş T?. Boş/eşleşme yok → ~. bul yüklem zorunlu tutar; yüklemli ilkYadaBoş ile eşdeğerdir.
Kullanım
k: Kullanıcı? = kullanıcılar.ilkYadaBoş()k: Kullanıcı? = kullanıcılar.ilkYadaBoş(^.id == id)Basit örnek
boş: liste<tamsayı> = []k: tamsayı? = boş.ilkYadaBoş()syaz k ?? "yok"Çıktı
yok
Dikkat edilmesi gerekenler
- Kimlik yazımı tam olarak
ilkYadaBoş(büyük B); dil büyük/küçük harf duyarlıdır. - Bulamazsa
~; US1515 üretmez. - Yüklemli
ilkYadaBoşilebulaynı nullable sonucu üretir. - Bellek içi sözlük bu sorgu üyesinin öğe tipini çözmez; sözlükte adet/ekle kullanın. Veritabanı tablo sorgusu ayrıdır.
Uygulandığı koleksiyonlar: koleksiyon
İlgili konular
bul
Ne yapar?
bul yüklem ister ve T? döner; bulamazsa ~. Yüklemli ilkYadaBoş ile aynı sonucu üretir. Kaynağı değiştirmez.
Ne zaman kullanılır?
Yüklemle ilk eşleşeni nullable olarak ararken kullanın.
Sonuç ve koleksiyonlar
Biçim: koleksiyon.bul(^.…) — yüklem zorunlu. Dönüş T?. Boş/eşleşme yok → ~.
Kullanım
k: Kullanıcı? = kullanıcılar.bul(^.id == id)Basit örnek
sayılar: liste<tamsayı> = [1, 2, 3]bulunan: tamsayı? = sayılar.bul(^ == 2)syaz "{bulunan}"Çıktı
2
Dikkat edilmesi gerekenler
- Yüklem zorunludur; yüklemsiz
ilkYadaBoş()tercih edilir. - Bulamazsa
~;ilkgibi US1515 üretmez. - Bellek içi sözlük bu sorgu üyesinin öğe tipini çözmez; sözlükte adet/ekle kullanın. Veritabanı tablo sorgusu ayrıdır.
Uygulandığı koleksiyonlar: koleksiyon
İlgili konular
varMı
Ne yapar?
varMı yüklem için herhangi bir öğe doğru mu diye bakar; ilk doğruda durur. Sonuç mantıksal. Boş kaynak yanlış. Kaynağı değiştirmez.
Ne zaman kullanılır?
En az bir eşleşme var mı diye kısa devreli sorgu gerektiğinde kullanın.
Sonuç ve koleksiyonlar
Biçim: koleksiyon.varMı(^.…) → mantıksal. İlk doğruda tarama biter.
Kullanım
var: mantıksal = sayılar.varMı(^ > 0)Basit örnek
sayaç: tamsayı = 0fonksiyon izle(sayı: tamsayı): mantıksal{ sayaç++ => sayı == 1}sayılar: liste<tamsayı> = [1, 2, 3]bulundu: mantıksal = sayılar.varMı(izle(^))syaz "{sayaç}"syaz "{bulundu}"Çıktı
1 doğru
Dikkat edilmesi gerekenler
- İlk doğruda durur (kısa devre).
- Boş kaynakta yanlış.
tümüile karıştırmayın:tümüher öğenin doğru olmasını ister.- Bellek içi sözlük bu sorgu üyesinin öğe tipini çözmez; sözlükte adet/ekle kullanın. Veritabanı tablo sorgusu ayrıdır.
Uygulandığı koleksiyonlar: koleksiyon
İlgili konular
tümü
Ne yapar?
tümü yüklemdir; tüm öğeler doğru mu diye bakar ve mantıksal döner. Boş kaynakta doğru. İlk yanlışta durur. Tüm öğeleri liste olarak döndürmez (DB tablo tümü() maddileştirmesinden ayrıdır).
Ne zaman kullanılır?
Her öğenin koşulu sağladığını sınarken kullanın.
Sonuç ve koleksiyonlar
Biçim: koleksiyon.tümü(^.…) → mantıksal. Boş → doğru. İlk yanlışta tarama biter.
Kullanım
uygun: mantıksal = sayılar.tümü(^ > 0)Basit örnek
model Kullanıcı{ ad: metin}kullanıcılar: liste<Kullanıcı> = []syaz "{kullanıcılar.tümü(^.ad == "x")}"Çıktı
doğru
Dikkat edilmesi gerekenler
- Boş koleksiyonda doğru (evrensel niceleyici).
- İlk yanlışta durur; tüm öğeleri döndürmez.
- Veritabanı zincirindeki
tümü()maddileştirme API’si ayrı özelliktir. - Bellek içi sözlük bu sorgu üyesinin öğe tipini çözmez; sözlükte adet/ekle kullanın. Veritabanı tablo sorgusu ayrıdır.
Uygulandığı koleksiyonlar: koleksiyon
İlgili konular
adet(yüklem)
Ne yapar?
adet(yüklem) yükleme uyan öğe sayısını tamsayı olarak verir. Özellik adet ile karıştırılmamalıdır. Kaynağı değiştirmez. Boş veya eşleşme yoksa 0.
Ne zaman kullanılır?
Koşula uyan öğe adedini sayarken kullanın.
Sonuç ve koleksiyonlar
Biçim: koleksiyon.adet(^ …) → tamsayı. Özellik koleksiyon.adet argümansız sayıdır.
Kullanım
n: tamsayı = sayılar.adet(^ > 1)Basit örnek
sayılar: liste<tamsayı> = [1, 2, 3]syaz "{sayılar.adet(^ > 1)}"Çıktı
2
Dikkat edilmesi gerekenler
- Argümansız
adetözellik; yüklemli biçim eşleşenleri sayar. - Boşta 0.
- Bellek içi sözlük bu sorgu üyesinin öğe tipini çözmez; sözlükte adet/ekle kullanın. Veritabanı tablo sorgusu ayrıdır.
Uygulandığı koleksiyonlar: koleksiyon
İlgili konular
toplam
Ne yapar?
toplam sayısal öğelerin toplamını ondalık olarak verir. Boş koleksiyonda 0. Kaynağı değiştirmez. Sayısal olmayan öğede US0853/seçici tanı hatası.
Ne zaman kullanılır?
Sayısal koleksiyonun toplamını alırken kullanın.
Sonuç ve koleksiyonlar
Biçim: koleksiyon.toplam() → ondalık. Boş → 0 (ortalama/min/maks boşta US1516 üretir; toplam üretmez). İsteğe bağlı anahtar seçicide ^ kullanılabilir.
Kullanım
t: ondalık = sayılar.toplam()Basit örnek
sayılar: liste<tamsayı> = [1, 2, 3]syaz "{sayılar.toplam()}"Çıktı
6
Geçersiz örnek
adlar: liste<metin> = ["Ali"]adlar.toplam()US0853 — toplam sayısal anahtar ister.
Dikkat edilmesi gerekenler
- Sonuç ondalık.
- Boş toplam 0; boş ortalama/min/maks US1516.
- Bellek içi sözlük bu sorgu üyesinin öğe tipini çözmez; sözlükte adet/ekle kullanın. Veritabanı tablo sorgusu ayrıdır.
Uygulandığı koleksiyonlar: sayısal koleksiyon
İlgili konular
ortalama
Ne yapar?
ortalama sayısal öğelerin ortalamasını ondalık olarak verir. Boş koleksiyonda US1516. Kaynağı değiştirmez.
Ne zaman kullanılır?
Sayısal koleksiyonun ortalamasını alırken kullanın; boş olabileceğini biliyorsanız önce adet sınayın.
Sonuç ve koleksiyonlar
Biçim: koleksiyon.ortalama() → ondalık. Boş → US1516 (toplamın boş 0 davranışından farklı). İsteğe bağlı anahtar seçicide ^ kullanılabilir.
Kullanım
o: ondalık = sayılar.ortalama()Basit örnek
sayılar: liste<tamsayı> = [1, 2, 3]syaz "{sayılar.ortalama()}"Çıktı
2
Geçersiz örnek
sayılar: liste<tamsayı> = []sayılar.ortalama()US1516 — boş ortalama.
Dikkat edilmesi gerekenler
- Boşta US1516; varsayılan değer dönmez.
- Sonuç ondalık.
- Bellek içi sözlük bu sorgu üyesinin öğe tipini çözmez; sözlükte adet/ekle kullanın. Veritabanı tablo sorgusu ayrıdır.
Uygulandığı koleksiyonlar: sayısal koleksiyon
İlgili konular
min
Ne yapar?
min sıralanabilir koleksiyonda en küçük öğenin kendisini döndürür (T); ~ dönmez. Boş koleksiyonda US1516. Kaynağı değiştirmez.
Ne zaman kullanılır?
En küçük öğeyi (değerin kendisini) alırken kullanın.
Sonuç ve koleksiyonlar
Biçim: koleksiyon.min() → öğe tipi. Boş → US1516. Sıralanamayan öğede seçici/tanı hatası. İsteğe bağlı anahtar seçicide ^ kullanılabilir.
Kullanım
küçük: tamsayı = sayılar.min()Basit örnek
sayılar: liste<tamsayı> = [1, 2, 3]syaz "{sayılar.min()}"Çıktı
1
Geçersiz örnek
sayılar: liste<tamsayı> = []sayılar.min()US1516 — boş min.
Dikkat edilmesi gerekenler
- Öğenin kendisini döner;
~değildir. - Boşta US1516.
- Bellek içi sözlük bu sorgu üyesinin öğe tipini çözmez; sözlükte adet/ekle kullanın. Veritabanı tablo sorgusu ayrıdır.
Uygulandığı koleksiyonlar: sıralanabilir
İlgili konular
maks
Ne yapar?
maks sıralanabilir koleksiyonda en büyük öğenin kendisini döndürür (T); ~ dönmez. Boş koleksiyonda US1516. Kaynağı değiştirmez.
Ne zaman kullanılır?
En büyük öğeyi (değerin kendisini) alırken kullanın.
Sonuç ve koleksiyonlar
Biçim: koleksiyon.maks() → öğe tipi. Boş → US1516. İsteğe bağlı anahtar seçicide ^ kullanılabilir.
Kullanım
büyük: tamsayı = sayılar.maks()Basit örnek
sayılar: liste<tamsayı> = [1, 2, 3]syaz "{sayılar.maks()}"Çıktı
3
Geçersiz örnek
sayılar: liste<tamsayı> = []sayılar.maks()US1516 — boş maks.
Dikkat edilmesi gerekenler
- Öğenin kendisini döner;
~değildir. - Boşta US1516.
- Bellek içi sözlük bu sorgu üyesinin öğe tipini çözmez; sözlükte adet/ekle kullanın. Veritabanı tablo sorgusu ayrıdır.
Uygulandığı koleksiyonlar: sıralanabilir
İlgili konular
Sorgu zinciri + '^'
Nedir?
^ sorgu öğesidir; genel değişken değil. Sorgu hevesli; kaynak değiştirmez. Üyeler: filtrele,sırala,tsırala,ilk,ilkYadaBoş,varMı,tümü,adet,toplam,ortalama,min,maks,benzersiz,atla,sınırla.
Sözdizimi
kullanıcılar .filtrele(^.aktif && ^.yaş >= minYaş) .tsırala(^.puan)Basit örnek
sonuç: liste<Kullanıcı> = kullanıcılar.filtrele(^.aktif && ^.yaş >= 18).tsırala(^.puan).sınırla(10)syaz "{sonuç.adet}"syaz sonuç[0].adÇıktı
2 Can
Geçersiz örnek
değer: tamsayı = 5sonuç = değer.filtrele(^.x > 0)Koleksiyon olmayan alıcıda sorgu üyesi US0852 üretir.
Tanı
US0852 — üretir
Dikkat edilmesi gerekenler
ilkboş US1515; boş ortalama/min/maks US1516; negatif atla/sınırla US0849.