گائيڊو وان روسم
نئون عمل گهڻو ڪري "ميچ" آپريٽر وانگر آهي جيڪو Scala، Rust، ۽ F# ۾ مهيا ڪيو ويو آهي، جيڪو مخصوص اظهار جي نتيجن کي "ڪيس" آپريٽر جي بنياد تي بلاڪ ۾ ڏنل نمونن جي فهرست سان مقابلو ڪري ٿو. سي، جاوا ۽ جاوا اسڪرپٽ ۾ موجود ”سوئچ“ آپريٽر جي برعڪس، ”ميچ“ تي مبني اظهار گهڻو ڪجهه پيش ڪري ٿو.
def http_error(status):
مطابقت جي حالت:
ڪيس 400:
واپسي "خراب درخواست"
ڪيس 401|403|404:
واپسي "اجازت ناهي"
ڪيس 418:
واپسي "مان هڪ چانهه آهيان"
ڪيس_:
واپسي "ٻيو ڪجهه"
مثال طور، توهان موجوده قدرن جي بنياد تي متغيرن کي پابند ڪرڻ لاءِ شيون، ٽوپلز، لسٽون، ۽ صوابديدي ترتيبون انپيڪ ڪري سگھو ٿا. ان کي اجازت ڏني وئي آھي nested ٽيمپليٽس جي وضاحت ڪرڻ، اضافي ”جيڪڏھن“ حالتون ٽيمپليٽ ۾ استعمال ڪريو، ماسڪ استعمال ڪريو (“[x, y, *rest]”)، ڪي/ويل ميپنگ (مثال طور، {“bandwidth”: b, “lateency ”: l} ڪڍڻ لاءِ ”بينڊوڊٿ“ ۽ ”لطابق“ ويلز ۽ ڊڪشنري) ڪڍڻ لاءِ، ذيلي ٽيمپليٽ (":=" آپريٽر)، ٽيمپليٽ ۾ نامزد مستقل استعمال ڪريو. ڪلاسن ۾، "__match__()" طريقو استعمال ڪندي ملندڙ رويي کي ترتيب ڏيڻ ممڪن آهي.
ڊيٽا ڪلاس مان ڊيٽا ڪلاس درآمد ڪريو
@dataclass
ڪلاس پوائنٽ:
x:int
y:int
def whereis (پوائنٽ):
ميچ پوائنٽ:
ڪيس پوائنٽ (0, 0):
پرنٽ ("اصل")
ڪيس پوائنٽ (0، y):
ڇپائي (f"Y={y}")
ڪيس پوائنٽ (x, 0):
ڇپائي (f"X={x}")
ڪيس پوائنٽ ():
پرنٽ ("ڪٿي ٻئي")
ڪيس_:
پرنٽ ("پوائنٽ نه")
ميچ پوائنٽ:
ڪيس پوائنٽ (x، y) جيڪڏھن x == y:
پرنٽ (f"Y=X تي {x}")
ڪيس پوائنٽ (x، y):
ڇاپيو (f"ناٽ تي ڊاگونل")
ڳاڙهو، سائو، نيرو = 0، 1، 2
ملندڙ رنگ:
ڪيس .RED:
پرنٽ ("مان ڳاڙهي ڏسان ٿو!")
ڪيس. گرين:
پرنٽ ("گھاس سائي آهي")
ڪيس .BLU
E:
پرنٽ ("مان بلوز محسوس ڪري رهيو آهيان :(")
جائزو وٺڻ لاء هڪ سيٽ تيار ڪيو ويو آهي
جو ذريعو: opennet.ru