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