Was Sie versuchen, hier zu tun ist Kontrolle Fluss statt bedingte Logik. Es ist eine ungültige Syntax für bedingte Logik. Ein korrekter Kontrollfluss verwendet die Konstrukte "and" und "or". Dafür sind sie da und nicht, wie oft fälschlicherweise angenommen, syntaktischer Zuckerersatz für & & und || bedingte Operatoren. Sie sind unterschiedlich, haben eine unterschiedliche Rangfolge der Bewertung und sollten an der richtigen Stelle verwendet werden. Beispiele:
1 > 2 or p 'no it is not'
2 > 1 and return
instance.exists? or not_found!
instance && instance.success? or raise FailureException, 'missing or unsuccessful'
Wesentlichen, wenn Sie versuchen, aus der Aussage wahr oder falsch zu lesen, verwenden & & und ||. Wenn Sie versuchen, einen Codepfad basierend auf einer bedingten Auswertung auszuführen, verwenden Sie und und oder.
Was meinst du mit "funktioniert nicht"? Was passiert und was erwartest du? –
Ich habe meine Frage aktualisiert. – demas
1> 2 || raise "error" funktioniert nicht – Falcon