mirror of
https://gitee.com/energye/energy.git
synced 2024-12-04 20:58:21 +08:00
upgrade-dev v2.3.42
This commit is contained in:
parent
81c3e29f83
commit
045192afb6
@ -178,6 +178,7 @@ func Test() {
|
||||
|
||||
objectKey.SetValue([]any{"字符串", 100001, 22222.333, true, testObj})
|
||||
fmt.Println("objectKey-to-array:", objectKey.JSONString())
|
||||
fmt.Println("objectKey-to-array:", objectKey.IsArray())
|
||||
|
||||
// 数组
|
||||
var arrayFunc = func() string {
|
||||
@ -198,6 +199,14 @@ func Test() {
|
||||
arrayIndex1 = bind.GetJSValue(arrayIndex1.Id())
|
||||
fmt.Println("arrayKey index 1:", arrayIndex1.AsString().Value())
|
||||
arrayKey.Add("添加一个字符串")
|
||||
|
||||
//end
|
||||
fmt.Println("fieldCollection.Len():", bind.fieldCollection.Len(), len(bind.hasFieldCollection))
|
||||
for k, v := range bind.hasFieldCollection {
|
||||
jsv := bind.GetJSValue(v)
|
||||
fmt.Println("k:", k, "v:", v, "jsv:", jsv.Type())
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestBind() {
|
||||
|
@ -36,31 +36,32 @@ var (
|
||||
//
|
||||
// GO和JS动态变量类型
|
||||
type JSValue interface {
|
||||
Name() string //当前变量绑定的名称
|
||||
Bytes() []byte //变量值转换为字节
|
||||
JSONString() string //变量值转换为JSON String
|
||||
SetValue(value any) //设置新值
|
||||
IsInteger() bool //是否 Integer
|
||||
IsDouble() bool //是否 Double
|
||||
IsString() bool //是否 String
|
||||
IsBoolean() bool //是否 Boolean
|
||||
IsObject() bool //是否 Object
|
||||
IsArray() bool //是否 Array
|
||||
IsNull() bool //是否 Null
|
||||
IsUndefined() bool //是否 Undefined
|
||||
IsFunction() bool //是否 Function
|
||||
AsInteger() JSInteger //转换为 Integer 失败返回 nil
|
||||
AsDouble() JSDouble //转换为 Double 失败返回 nil
|
||||
AsString() JSString //转换为 String 失败返回 nil
|
||||
AsBoolean() JSBoolean //转换为 Boolean 失败返回 nil
|
||||
AsObject() JSObject //转换为 Object 失败返回 nil
|
||||
AsArray() JSArray //转换为 Array 失败返回 nil
|
||||
AsNull() JSNull //转换为 Null 失败返回 nil
|
||||
AsUndefined() JSUndefined //转换为 Undefined 失败返回 nil
|
||||
AsFunction() JSFunction //转换为 Function 失败返回 nil
|
||||
AsV8Value() JSValue //转换为 JSValue
|
||||
Name() string //当前变量绑定的名称
|
||||
Bytes() []byte //变量值转换为字节
|
||||
JSONString() string //变量值转换为JSON String
|
||||
SetValue(value any) //设置新值
|
||||
IsInteger() bool //是否 Integer
|
||||
IsDouble() bool //是否 Double
|
||||
IsString() bool //是否 String
|
||||
IsBoolean() bool //是否 Boolean
|
||||
IsObject() bool //是否 Object
|
||||
IsArray() bool //是否 Array
|
||||
IsNull() bool //是否 Null
|
||||
IsUndefined() bool //是否 Undefined
|
||||
IsFunction() bool //是否 Function
|
||||
AsInteger() JSInteger //转换为 Integer 失败返回 nil
|
||||
AsDouble() JSDouble //转换为 Double 失败返回 nil
|
||||
AsString() JSString //转换为 String 失败返回 nil
|
||||
AsBoolean() JSBoolean //转换为 Boolean 失败返回 nil
|
||||
AsObject() JSObject //转换为 Object 失败返回 nil
|
||||
AsArray() JSArray //转换为 Array 失败返回 nil
|
||||
AsNull() JSNull //转换为 Null 失败返回 nil
|
||||
AsUndefined() JSUndefined //转换为 Undefined 失败返回 nil
|
||||
AsFunction() JSFunction //转换为 Function 失败返回 nil
|
||||
AsV8Value() JSValue //转换为 JSValue
|
||||
Id() uintptr //指针ID
|
||||
Type() consts.GO_VALUE_TYPE //类型
|
||||
setId(id uintptr)
|
||||
Id() uintptr
|
||||
free()
|
||||
}
|
||||
|
||||
@ -106,7 +107,7 @@ func (m *V8Value) SetValue(value any) {
|
||||
}
|
||||
switch kind {
|
||||
case reflect.Struct:
|
||||
m.value = &json.JsonData{T: consts.GO_VALUE_STRUCT, V: value, S: 0}
|
||||
m.value = &json.JsonData{T: consts.GO_VALUE_MAP, V: value, S: 0}
|
||||
case reflect.Map:
|
||||
m.value = &json.JsonData{T: consts.GO_VALUE_MAP, V: value, S: rv.Len()}
|
||||
case reflect.Slice:
|
||||
@ -161,7 +162,7 @@ func (m *V8Value) IsArray() bool {
|
||||
}
|
||||
|
||||
func (m *V8Value) IsObject() bool {
|
||||
return m.value.Type() == consts.GO_VALUE_STRUCT
|
||||
return m.value.IsObject()
|
||||
}
|
||||
|
||||
func (m *V8Value) IsFunction() bool {
|
||||
@ -279,6 +280,13 @@ func (m *V8Value) AsV8Value() JSValue {
|
||||
return m
|
||||
}
|
||||
|
||||
func (m *V8Value) Type() consts.GO_VALUE_TYPE {
|
||||
if m == nil {
|
||||
return consts.GO_VALUE_INVALID
|
||||
}
|
||||
return m.value.Type()
|
||||
}
|
||||
|
||||
func (m *V8Value) free() {
|
||||
if m.value != nil {
|
||||
m.id = 0
|
||||
@ -413,7 +421,7 @@ func NewObject(object any) JSObject {
|
||||
}
|
||||
v := new(jsObject)
|
||||
v.name = rv.Type().Elem().Name()
|
||||
v.value = &json.JsonData{T: consts.GO_VALUE_STRUCT, V: object, S: 0}
|
||||
v.value = &json.JsonData{T: consts.GO_VALUE_MAP, V: object, S: 0}
|
||||
v.rv = &rv
|
||||
bind.Set(v.name, v)
|
||||
return v
|
||||
|
@ -129,7 +129,7 @@ func (m *jsArray) createItem(index int, value any) JSValue {
|
||||
v := new(jsObject)
|
||||
v.pName = m.name
|
||||
v.name = strconv.Itoa(index)
|
||||
v.value = &json.JsonData{T: consts.GO_VALUE_STRUCT, V: rv.Interface(), S: 0}
|
||||
v.value = &json.JsonData{T: consts.GO_VALUE_MAP, V: rv.Interface(), S: 0}
|
||||
v.rv = &rv
|
||||
bind.Set(v.nameKey(), v)
|
||||
return v
|
||||
|
Loading…
Reference in New Issue
Block a user