Guido van Rossum
Kuitwa kutsva kwakafanana ne "match" opareta yakapihwa muScala, Rust, uye F #, iyo inofananidza mhedzisiro yekutaura kwakatemwa nerunyorwa rwemapateni akanyorwa mumabhuroko akavakirwa pane "kesi" mushandisi. Kusiyana ne "switch" mushandisi anowanikwa muC, Java, uye JavaScript, "match" -based expressions inopa zvakawanda.
def http_error(status):
match status:
kesi 400:
dzorera "Chikumbiro chakaipa"
nyaya 401|403|404:
dzoka "Hazvibvumirwe"
kesi 418:
dzoka "ndiri teapot"
nyaya_:
dzoka "Chimwe chinhu"
Semuyenzaniso, unogona kuburitsa zvinhu, tuples, rondedzero, uye zvisina tsarukano sequences kuti usunge vhezheni zvichienderana nehunhu huripo. Inobvumirwa kutsanangura matemplate anested, shandisa mamwe mamiriro e "kana" mutemplate, shandisa masikisi ("[x, y, *zorora]"), kiyi / kukosha mappings (semuenzaniso, {"bandwidth": b, "latency ”: l} kuburitsa "bandwidth" uye "latency" kukosha uye duramazwi), bvisa matemplate madiki (":=" mushandisi), shandisa ane mazita anogara ari mutemplate. Mumakirasi, zvinokwanisika kugadzirisa maitiro ekufananidza uchishandisa "__match__ ()" nzira.
kubva kudataclasses import dataclass
@dataclass
kirasi Point:
x:int
y :int
def whereis(point):
match point:
nyaya Point (0, 0):
dhinda ("Mavambo")
nyaya Point(0, y):
dhinda(f"Y={y}")
nyaya (x, 0):
dhinda(f"X={x}")
nyaya Point():
print ("Kumwe kumwe")
nyaya_:
dhinda ("Kwete pfungwa")
match point:
nyaya Point(x, y) kana x == y:
dhinda(f"Y=X pa {x}")
nyaya Poindi(x, y):
dhinda (f"Kwete pane diagonal")
RED, GREEN, BLUE = 0, 1, 2
match color:
case .RED:
print("Ndinoona tsvuku!")
case .GREEN:
dhinda ("Uswa hwakasvibira")
nyaya .BLU
E:
dhinda ("Ndiri kunzwa kufara :(")
Seti yakagadzirirwa kuongororwa
Source: opennet.ru