2016-05-20 2 views
0

Ich war Theorie zu lesen undLassen Sie Muster binden, kann jemand mit Beispielen erklären?

let p = t in t //pattern binding 

Ein Beispiel mit einem Rekordmuster

let {l1=x1:S1, l2=x2:S2} = E1 in (x1 x2) 

    // l1,l2 are lebels, x1,x2 are variables, S1 and S2 are types. 

lasse ich verstehen verbindlich, aber nicht vertraut mit über Form, deshalb bin ich etwas verwirrt folgende anzutreffen. Könnte mir jemand ein echtes Beispiel geben und es erklären? Ich suchte online, aber sah keine Bindung mit Muster wie oben.

+0

, was Sprache ist dies? –

+0

@ JohnColeman. Dies ist in theoretischer Weise geschrieben, nicht mit einer bestimmten Sprache. Deshalb brauche ich ein konkretes Beispiel. :) – arslan

Antwort

1

Für Swift (und das gleiche scheint für Rust, zum Beispiel um wahr zu sein) Sie so etwas wie diese verwenden:

let (x1, x2) = (0.5, 1) //where x1 would be Double, x2 would be Int based on type inference 

Hier legen Sie die Werte auf ein passendes Paar zu binden, dh ersten Wert in der Die linke Seite in Klammern ist an den ersten Wert in der rechten Klammer gebunden und so weiter.

Dann können Sie die Werte der Bindung wie normale Konstanten verwenden, durch Bezugnahme auf x1 oder x2:

print(x1) // prints 0.5 
Verwandte Themen