Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

class DataModel

public abstract class DataModel

功能:此类为中间数据层。

class DataModelBool

public class DataModelBool <: DataModel {
    public init(bv: Bool)
}

功能:此类为 DataModel 的子类,实现对 Bool 类型数据的封装。

父类型:

init(Bool)

public init(bv: Bool)

功能:构造一个具有初始数据的 DataModelBool 实例。

参数:

  • bv: Bool - 传入的 Bool 类型的数据。

示例:

import stdx.serialization.serialization.*

main() {
    // 创建DataModelBool实例
    let dataModel = DataModelBool(true)
    return 0
}

func getValue()

public func getValue(): Bool

功能:获取 DataModelBool 中的数据。

返回值:

示例:

import stdx.serialization.serialization.*

main() {
    // 创建DataModelBool实例
    let dataModel = DataModelBool(false)

    // 获取布尔值
    let value = dataModel.getValue()

    println("获取到的布尔值: ${value}")

    return 0
}

运行结果:

获取到的布尔值: false

class DataModelFloat

public class DataModelFloat <: DataModel {
    public init(fv: Float64)
    public init(v: Int64)
}

功能:此类为 DataModel 的子类,实现对 Float64 类型数据的封装。

父类型:

init(Float64)

public init(fv: Float64)

功能:构造一个具有初始数据的 DataModelFloat 实例。

参数:

  • fv: Float64 - 传入的 Float64 类型的数据。

示例:

import stdx.serialization.serialization.*

main() {
    // 创建DataModelFloat实例
    let dataModel = DataModelFloat(3.14)
    return 0
}

init(Int64)

public init(v: Int64)

功能:构造一个具有初始数据的 DataModelFloat 实例。

参数:

  • v: Int64 - 传入的 Int64 类型的数据。

示例:

import stdx.serialization.serialization.*

main() {
    // 使用Int64参数创建DataModelFloat实例
    let dataModel = DataModelFloat(100)
    return 0
}

func getValue()

public func getValue(): Float64

功能:获取 DataModelFloat 中的数据。

返回值:

示例:

import stdx.serialization.serialization.*

main() {
    // 创建DataModelFloat实例,使用浮点数
    var dataModel = DataModelFloat(3.14)

    // 获取浮点数值
    let value = dataModel.getValue()

    println("获取到的浮点数值: ${value}")

    // 创建DataModelFloat实例,使用整数
    dataModel = DataModelFloat(3)

    println("获取到的浮点数值: ${dataModel.getValue()}")
    return 0
}

运行结果:

获取到的浮点数值: 3.140000
获取到的浮点数值: 3.000000

class DataModelInt

public class DataModelInt <: DataModel {
    public init(iv: Int64)
}

功能:此类为 DataModel 的子类,实现对 Int64 类型数据的封装。

父类型:

init(Int64)

public init(iv: Int64)

功能:构造一个具有初始数据的 DataModelInt 实例。

参数:

  • iv: Int64 - 传入的 Int64 类型的数据。

示例:

import stdx.serialization.serialization.*

main() {
    // 创建DataModelInt实例
    let dataModel = DataModelInt(42)
    return 0
}

func getValue()

public func getValue(): Int64

功能:获取 DataModelInt 中的数据。

返回值:

  • Int64 - DataModelInt 中类型为 Int64 的 value 数值。

示例:

import stdx.serialization.serialization.*

main() {
    // 创建DataModelInt实例
    let dataModel = DataModelInt(123)

    // 获取整数值
    let value = dataModel.getValue()

    println("获取到的整数值: ${value}")

    return 0
}

运行结果:

获取到的整数值: 123

class DataModelNull

public class DataModelNull <: DataModel

功能:此类为 DataModel 的子类,实现对 Null 类型数据的封装。

父类型:

class DataModelSeq

public class DataModelSeq <: DataModel {
    public init()
    public init(list: ArrayList<DataModel>)
}

功能:此类为 DataModel 的子类,实现对 ArrayList<DataModel> 类型数据的封装。

父类型:

init()

public init()

功能:构造一个参数为空的 DataModelSeq 实例。其中的数据默认为空的 ArrayList<DataModel>。

示例:

import stdx.serialization.serialization.*

main() {
    // 创建空参数的DataModelSeq实例
    let dataModel = DataModelSeq()
    return 0
}

init(ArrayList<DataModel>)

public init(list: ArrayList<DataModel>)

功能:构造一个具有初始数据的 DataModelSeq 实例。

参数:

示例:

import stdx.serialization.serialization.*
import std.collection.*

main() {
    // 创建一个ArrayList并添加一些DataModel
    let list = ArrayList<DataModel>()
    list.add(DataModelString("元素1"))
    list.add(DataModelString("元素2"))

    // 使用ArrayList创建DataModelSeq实例
    let dataModel = DataModelSeq(list)

    // 反序列化
    let array = Array<String>.deserialize(dataModel)
    println("查看数据: ${array}")
    return 0
}

运行结果:

查看数据: [元素1, 元素2]

func add(DataModel)

public func add(dm: DataModel): Unit 

功能:在 DataModelSeq 末尾增加一个 DataModel 数据。

参数:

示例:

import stdx.serialization.serialization.*
import std.collection.*

main() {
    // 创建DataModelSeq实例
    let dataModel = DataModelSeq()

    // 添加一些数据
    dataModel.add(DataModelString("字符串数据"))
    dataModel.add(DataModelInt(123))
    return 0
}

func getItems()

public func getItems(): ArrayList<DataModel>

功能:获取 DataModelSeq 中的数据。

返回值:

示例:

import stdx.serialization.serialization.*
import std.collection.*

main() {
    // 创建DataModelSeq实例并添加数据
    let dataModel = DataModelSeq()
    dataModel.add(DataModelString("字符串数据"))
    dataModel.add(DataModelInt(123))

    // 获取所有项目
    let items = dataModel.getItems()

    println("获取到的数据数量: ${items.size}")

    return 0
}

运行结果:

获取到的数据数量: 2

class DataModelString

public class DataModelString <: DataModel {
    public init(sv: String)
}

功能:此类为 DataModel 的子类,实现对 String 类型数据的封装。

父类型:

init(String)

public init(sv: String)

功能:构造一个具有初始数据的 DataModelString

参数:

  • sv: String - 传入的 String 类型。

示例:

import stdx.serialization.serialization.*

main() {
    // 创建DataModelString实例
    let dataModel = DataModelString("这是一个字符串")
    return 0
}

func getValue()

public func getValue(): String

功能:获取 DataModelString 中的数据。

返回值:

示例:

import stdx.serialization.serialization.*

main() {
    // 创建DataModelString实例
    let dataModel = DataModelString("测试字符串")

    // 获取字符串值
    let value = dataModel.getValue()

    println("获取到的字符串值: ${value}")

    return 0
}

运行结果:

获取到的字符串值: 测试字符串

class DataModelStruct

public class DataModelStruct <: DataModel {
    public init()
    public init(list: ArrayList<Field>)
}

功能:此类为 DataModel 的子类,用来实现 class 对象到 DataModel 的转换。

父类型:

init()

public init()

功能:构造一个空参的 DataModelStructfields 默认为空的 ArrayList<Field>。

示例:

import stdx.serialization.serialization.*

main() {
    // 创建空参数的DataModelStruct实例
    let dataModel = DataModelStruct()
    return 0
}

init(ArrayList<Field>)

public init(list: ArrayList<Field>)

功能:构造一个具有初始数据的 DataModelStruct

参数:

  • list: ArrayList<Field> - 传入的 ArrayList<Field> 类型的数据。

示例:

import stdx.serialization.serialization.*
import std.collection.*

main() {
    // 创建Field列表
    let fieldList = ArrayList<Field>()
    fieldList.add(Field("name", DataModelString("张三")))
    fieldList.add(Field("age", DataModelInt(25)))

    // 使用Field列表创建DataModelStruct实例
    let dataModel = DataModelStruct(fieldList)
    return 0
}

func add(Field)

public func add(fie: Field): DataModelStruct

功能:添加数据 fieDataModelStruct 中。

参数:

返回值:

示例:

import stdx.serialization.serialization.*

main() {
    // 创建DataModelStruct实例
    let dataModel = DataModelStruct()

    // 创建一个Field并添加到DataModelStruct
    let field = Field("name", DataModelString("李四"))
    let newDataModel = dataModel.add(field)
    return 0
}

func get(String)

public func get(key: String): DataModel

功能:获取 key 对应的数据。

参数:

  • key: String - 传入的 String 类型。

返回值:

示例:

import stdx.serialization.serialization.*

main() {
    // 创建DataModelStruct实例并添加数据
    let dataModel = DataModelStruct()
    let fieldName = Field("name", DataModelString("王五"))
    let fieldAge = Field("age", DataModelInt(18))
    dataModel.add(fieldName)
    dataModel.add(fieldAge)

    // 获取指定key的数据
    let dataModelString = dataModel.get("name")

    // 反序列化
    let data = String.deserialize(dataModelString)
    println("name: ${data}")
    return 0
}

运行结果:

name: 王五

func getFields()

public func getFields(): ArrayList<Field>

功能:获取 DataModelStruct 的数据集合。

返回值:

  • ArrayList<Field> - 类型为 ArrayList<Field> 的数据集合。

示例:

import stdx.serialization.serialization.*

main() {
    // 创建DataModelStruct实例并添加数据
    let dataModel = DataModelStruct()
    let fieldName = Field("name", DataModelString("赵六"))
    let fieldAge = Field("age", DataModelInt(18))
    dataModel.add(fieldName)
    dataModel.add(fieldAge)

    // 获取所有字段
    let fields = dataModel.getFields()

    println("数据大小: ${fields.size}")
    return 0
}

运行结果:

数据大小: 2

class Field

public class Field {
    public init(name: String, data: DataModel)
}

功能:用于存储 DataModelStruct 的元素。

init(String, DataModel)

public init(name: String, data: DataModel)

功能:Field 的构造函数。

参数:

  • name: String - name 字段值,name 字段为 "" 时行为与为其它字符串时一致。
  • data: DataModel - data 字段值。

示例:

import stdx.serialization.serialization.*

main() {
    // 创建Field实例
    let field = Field("age", DataModelInt(25))
    return 0
}

func getData()

public func getData(): DataModel

功能:获取 data 字段。

返回值:

示例:

import stdx.serialization.serialization.*

main() {
    // 创建Field实例
    let field = Field("score", DataModelFloat(95.5))

    // 获取data字段
    let data = field.getData()

    let score = Float64.deserialize(data)
    println("score: ${score}")

    return 0
}

运行结果:

score: 95.500000

func getName()

public func getName(): String

功能:获取 name 字段。

返回值:

  • String - 获取到的 name 字段,类型为 String。

示例:

import stdx.serialization.serialization.*

main() {
    // 创建Field实例
    let field = Field("username", DataModelString("admin"))

    // 获取name字段
    let name = field.getName()

    println("获取到的name字段: ${name}")

    return 0
}

运行结果:

获取到的name字段: username