QJSPrimitiveValue Class

QJSPrimitiveValueクラスは、JavaScriptセマンティクスでプリミティブ型を操作します。詳細...

Header: #include <QJSPrimitiveValue>
CMake: find_package(Qt6 REQUIRED COMPONENTS Qml)
target_link_libraries(mytarget PRIVATE Qt6::Qml)
qmake: QT += qml
Since: Qt 6.1

パブリック型

enum Type { Undefined, Null, Boolean, Integer, Double, String }

パブリック関数

QJSPrimitiveValue()
QJSPrimitiveValue(QJSPrimitiveNull null)
QJSPrimitiveValue(QJSPrimitiveUndefined undefined)
QJSPrimitiveValue(QString value)
QJSPrimitiveValue(bool value)
QJSPrimitiveValue(const QVariant &value)
QJSPrimitiveValue(double value)
QJSPrimitiveValue(int value)
(since 6.4) QJSPrimitiveValue(QMetaType type, const void *value)
(since 6.6) const void *constData() const
(since 6.6) void *data()
(since 6.6) const void *data() const
bool equals(const QJSPrimitiveValue &other) const
(since 6.6) QMetaType metaType() const
bool strictlyEquals(const QJSPrimitiveValue &other) const
(since 6.6) QJSPrimitiveValue to() const
bool toBoolean() const
double toDouble() const
int toInteger() const
QString toString() const
QJSPrimitiveValue::Type type() const
(since 6.1) bool operator!=(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
(since 6.1) QJSPrimitiveValue operator*(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
(since 6.1) QJSPrimitiveValue operator+(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
(since 6.1) QJSPrimitiveValue operator-(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
(since 6.1) QJSPrimitiveValue operator/(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
(since 6.1) bool operator<(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
(since 6.1) bool operator<=(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
(since 6.1) bool operator==(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
(since 6.1) bool operator>(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
(since 6.1) bool operator>=(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)

詳細説明

QJSPrimitiveValueは、ECMA-262標準に定義されているプリミティブ型のほとんどをサポートしており、特にUndefined、Boolean、Number、Stringをサポートしています。さらに、JavaScriptのNULLをQJSPrimitiveValueに格納することができ、Numberの特殊なケースとして整数値を格納することができます。

これらの値はすべて、JavaScriptのヒープとやりとりすることなく、即座に格納されます。したがって、異なるJavaScriptエンジン間でQJSPrimitiveValueを渡すことができます。QJSManagedValue とは対照的に、QJSPrimitiveValueを作成されたスレッドとは異なるスレッドから破棄する危険性もありません。反面、QJSPrimitiveValueはどのJavaScriptエンジンへの参照も保持しません。

QJSPrimitiveValueは、JavaScriptのセマンティクスでサポートされている型にJavaScriptの算術演算子と比較演算子を実装しています。型は、演算子がJavaScript式で記述された場合、JavaScriptエンジンがそれらを強制するように強制されます。

JavaScriptのSymbol型は、QJSPrimitiveValueの主な目的である算術演算子や比較演算子に関して非常に限定的な実用性しかないため、サポートされていません。特に、数値や文字列に強制しようとすると例外が発生し、JavaScript Engineなしでは例外を投げることができません。

メンバ型ドキュメント

enum QJSPrimitiveValue::Type

この列挙型は、QJSPrimitiveValue が含む可能性のある型を指定します。

定数説明
QJSPrimitiveValue::Undefined0JavaScript の未定義値。
QJSPrimitiveValue::Null1JavaScript の null 値。これは実際には別のJavaScript型ではなく、Object型の特別な値です。これは非常に一般的で、JavaScript エンジンがなくても保存できるため、まだサポートされています。
QJSPrimitiveValue::Boolean2JavaScript のブール値。
QJSPrimitiveValue::Integer3整数。これはJavaScriptのNumber型の特殊なケースです。JavaScript には実際の整数型はありませんが、ECMA-262標準には、整数でしか意味をなさない特定の演算子、特にビットシフト演算子に対応するために、Number をどのように変換するかのルールが含まれています。QJSPrimitiveValueInteger 型はそのような変換の結果を表します。
QJSPrimitiveValue::Double4JavaScript の Number 値。
QJSPrimitiveValue::String5JavaScript 文字列値。

メンバ関数ドキュメント

[constexpr, since 6.6] const void *QJSPrimitiveValue::constData() const

[constexpr, since 6.6] const void *QJSPrimitiveValue::data() const

書き込むことができない汎用 void* として、含まれる値へのポインタを返します。

この関数は Qt 6.6 で導入されました。

[constexpr noexcept] QJSPrimitiveValue::QJSPrimitiveValue()

Undefined 型の QJSPrimitiveValue を作成します。

[constexpr noexcept] QJSPrimitiveValue::QJSPrimitiveValue(QJSPrimitiveNull null)

null 、型NullのQJSPrimitiveValueを作成します。

[constexpr noexcept] QJSPrimitiveValue::QJSPrimitiveValue(QJSPrimitiveUndefined undefined)

undefined 、型が Undefined の QJSPrimitiveValue を作成します。

[noexcept] QJSPrimitiveValue::QJSPrimitiveValue(QString value)

value および String 型の QJSPrimitiveValue を作成する。

[constexpr noexcept] QJSPrimitiveValue::QJSPrimitiveValue(bool value)

value および Boolean 型の QJSPrimitiveValue を作成する。

[explicit noexcept] QJSPrimitiveValue::QJSPrimitiveValue(const QVariant &value)

value の内容が QJSPrimtiveValue に格納できる場合、その内容から QJSPrimitiveValue を作成する。そうでない場合は、Undefined型のQJSPrimitiveValueになります。

[constexpr noexcept] QJSPrimitiveValue::QJSPrimitiveValue(double value)

value 、Double 型の QJSPrimitiveValue を作成します。

[constexpr noexcept] QJSPrimitiveValue::QJSPrimitiveValue(int value)

value および Integer 型の QJSPrimitiveValue を作成します。

[noexcept default, since 6.4] QJSPrimitiveValue::QJSPrimitiveValue(QMetaType type, const void *value)

type が QJSPrimtiveValue に格納できる場合、type 型の QJSPrimitiveValue を作成し、value で初期化します。この場合、value は nullptr であってはなりません。type が格納できない場合は、Undefined型のQJSPrimitiveValueになります。

格納したい変数のアドレスを渡さなければならないことに注意してください。

通常は、このコンストラクタを使用する必要はなく、代わりにQVariant を取るコンストラクタを使用してください。

この関数は Qt 6.4 で導入されました。

[constexpr, since 6.6] void *QJSPrimitiveValue::data()

格納されているデータへのポインタを、書き込み可能な汎用 void* として返します。

この関数は Qt 6.6 で導入されました。

[constexpr] bool QJSPrimitiveValue::equals(const QJSPrimitiveValue &other) const

このQJSPrimitiveValueother に対して JavaScript の '==' 演算を実行し、結果を返します。

[constexpr, since 6.6] QMetaType QJSPrimitiveValue::metaType() const

QJSPrimitiveValue に格納されている値のQMetaType を返します。

この関数は Qt 6.6 で導入されました。

[constexpr] bool QJSPrimitiveValue::strictlyEquals(const QJSPrimitiveValue &other) const

このQJSPrimitiveValueother に対して JavaScript の '===' 操作を実行し、結果を返します。

[since 6.6] template <QJSPrimitiveValue::Type type> QJSPrimitiveValue QJSPrimitiveValue::to() const

値を指定された型に強制し、結果を新しいQJSPrimitiveValue として返します。

この関数は Qt 6.6 で導入されました。

toBoolean()、toInteger()、toDouble()、toString()も参照してください

[constexpr] bool QJSPrimitiveValue::toBoolean() const

JavaScriptのルールによってブール値に強制された値を返します。

[constexpr] double QJSPrimitiveValue::toDouble() const

JavaScriptルールによりJavaScript Numberに強制された値を返します。

[constexpr] int QJSPrimitiveValue::toInteger() const

JavaScript がビットシフト操作のために準備するときに適用する規則によって、積分 32 ビット数に強制された値を返します。

QString QJSPrimitiveValue::toString() const

JavaScript の規則によって JavaScript String に強制された値を返します。

[constexpr] QJSPrimitiveValue::Type QJSPrimitiveValue::type() const

QJSPrimitiveValue の型を返します。

関連する非メンバー

[constexpr, since 6.1] bool operator!=(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)

lhs およびrhs に対して JavaScript の '!==' 操作を実行し、結果を返します。

この関数は Qt 6.1 で導入されました。

[since 6.1] QJSPrimitiveValue operator*(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)

lhsrhs に対して JavaScript の '*' 操作を実行し、結果を返します。

この関数は Qt 6.1 で導入されました。

[since 6.1] QJSPrimitiveValue operator+(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)

lhsrhs に対して JavaScript の '+' 操作を実行し、結果を返します。

この関数は Qt 6.1 で導入されました。

[since 6.1] QJSPrimitiveValue operator-(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)

lhsrhs に対して JavaScript の '-' 操作を実行し、結果を返します。

この関数は Qt 6.1 で導入されました。

[since 6.1] QJSPrimitiveValue operator/(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)

lhsrhs の間で JavaScript の '/' 操作を行い、結果を返します。

この関数は Qt 6.1 で導入されました。

[constexpr, since 6.1] bool operator<(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)

lhsrhs の間で JavaScript の '<' 操作を行い、結果を返します。

この関数は Qt 6.1 で導入されました。

[constexpr, since 6.1] bool operator<=(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)

lhsrhs に対して JavaScript の '<=' 操作を行い、結果を返します。

この関数は Qt 6.1 で導入されました。

[constexpr, since 6.1] bool operator==(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)

lhsrhs に対して JavaScript の '===' 操作を実行し、結果を返します。

この関数は Qt 6.1 で導入されました。

[constexpr, since 6.1] bool operator>(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)

JavaScript の '>' 操作をlhsrhs に対して実行し、結果を返します。

この関数は Qt 6.1 で導入されました。

[constexpr, since 6.1] bool operator>=(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)

lhsrhs に対して JavaScript の '>=' 演算を行い、結果を返します。

この関数は Qt 6.1 で導入されました。

この関数は Qt 6.1 で導入されました。©2024 The Qt Company Ltd. ここに含まれるドキュメントの著作権はそれぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。