Redundante optionale Verkettung
Diese Warnkategorie wird von qmllint als „ [redundant-optional-chaining] “ bezeichnet.
Redundante optionale Verkettung
Was ist passiert?
Bei einigen Abfragen wird optionales Chaining verwendet, obwohl dies nicht erforderlich ist. Dies kann beim Abrufen von Enum-Werten oder bei der Abfrage einer Basisklasse passieren, die nicht als „ null “ oder „ undefined “ gekennzeichnet werden kann.
Warum ist das schlecht?
Ein optionales Nachschlagen erfordert eine Laufzeitprüfung, die bei einem regulären Nachschlagen entfällt. Diese zusätzlichen Anweisungen können von den Tools nicht immer als redundant erkannt und optimiert werden. Sie verursachen daher zusätzliche Laufzeitkosten und blähen das Programm unnötig auf.
Zudem kann die Warnung darauf hindeuten, dass die optionale Suche an der falschen Basis in der Kette durchgeführt wurde. Ein konkreteres Beispiel finden Sie im nächsten Abschnitt.
Beispiel
// Main.qml
import QtQml
QtObject {
// Main will either be resolved and always work, or throw an exception or fail to compile
enum E { A, B, C }
property int i: Main?.A
// A url cannot be null or undefined
property url u: ""
property string s: u?.toString()
// Did you mean to make the second lookup optional?
property int i: Safe?.Unsafe.i
}Um diese Warnungen zu beheben, ersetzen Sie die redundanten optionalen Nachschläge durch nicht-optionale:
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.