Guido van Rossum
Qhov kev siv tshiab no zoo li "match" tus neeg teb xov tooj muab hauv Scala, Rust, thiab F#, uas sib piv cov txiaj ntsig ntawm cov lus qhia tshwj xeeb nrog cov npe ntawm cov qauv uas tau teev tseg hauv cov blocks raws li "cov ntaub ntawv" tus neeg teb xov tooj. Tsis zoo li "hloov" tus neeg teb xov tooj muaj nyob rau hauv C, Java, thiab JavaScript, "match"-raws li kab lus muaj ntau yam ntxiv
def http_error(status):
match xwm txheej:
rooj plaub 400:
rov qab "Kev thov phem"
Case 401 | 403 | 404:
rov qab "Tsis pub"
rooj plaub 418:
rov qab "Kuv yog ib lub teapot"
cas _:
rov qab "Ib yam dab tsi ntxiv"
Piv txwv li, koj tuaj yeem ntim cov khoom, tuples, cov npe, thiab cov khoom sib txawv los khi cov khoom sib txawv raws li cov txiaj ntsig uas twb muaj lawm. Nws raug tso cai los txhais cov qauv nested, siv ntxiv "yog" cov xwm txheej hauv cov qauv, siv lub qhov ncauj qhov ntswg ([x, y, * so]"), key / value maps (piv txwv li, {"bandwidth": b, "latency ”: l} txhawm rau rho tawm "bandwidth" thiab "latency" qhov tseem ceeb thiab phau ntawv txhais lus), rho tawm cov qauv (": = "tus neeg teb xov tooj), siv lub npe tsis tu ncua hauv template. Hauv cov chav kawm, nws tuaj yeem hloov kho tus cwj pwm sib piv siv "__match__()" txoj kev.
los ntawm dataclasses import dataclass
@dataclass
Chav Kawm Point:
x :ib
y :ib
def whereis(point):
match point:
Case Point(0):
print("Keeb kwm")
Case Point(0, y):
print(f"Y={y}")
Case Point(x, 0):
print(f"X={x}")
Case Point():
print("Lwm qhov chaw")
cas _:
print("Tsis yog point")
match point:
case Point(x,y) yog x == y:
print(f"Y=X at {x}")
Case Point(x, y):
print(f "Tsis yog ntawm kab pheeb ces kaum")
RED, GREEN, BLUE = 0, 1, 2
phim xim:
CAS .RED:
print("Kuv pom liab!")
Case .GREEN:
print("Nqaij ntsuab")
cas .BLU
E:
print(“Kuv xav tias lub blues :(“)
Ib txheej tau npaj rau kev tshuaj xyuas
Tau qhov twg los: opennet.ru