Mehrdeutige Verwendung von Funktionen (Swift 4)

8

Ich habe versucht herauszufinden, warum der folgende Code mehrdeutig ist ...

%Vor%

... wenn ich es mit zwei faulen Sequenzen und einem Aufruf von makeIterator BEISPIEL .

%Vor%

Dennoch hat der folgende Code diese Mehrdeutigkeit nicht ...

%Vor%

... wenn ich es mit zwei faulen Sequenzen und einem Aufruf von makeIterator BEISPIEL .

%Vor%

Meine Argumentation ist, dass eine Lazy-Sequenz sowohl mit LazySequenceProtocol als auch mit Sequence übereinstimmt, damit das Typsystem nicht weiß, welches product zu wählen ist. Aber nach dieser Definition sollte auch die zweite Version nicht funktionieren.

Ich benutze Swift 4.0.

Was macht die zweite Version?

    
Dennis Vennink 15.08.2017, 10:25
quelle

0 Antworten