Darabonba 语言学习--自定义类型Model

简介: 本篇文章仅作为本人学习记录,如涉及侵权问题。及时联系作者,予以删除。

自定义类型 Model

介绍

Darabonba 中,我们通过 Model 来表示属性可枚举的对象结构,可以将其翻译为一个确切的类型,比如在 JavaTypeScript 中可以翻译为 class,在 Go 中可以翻译为 struct。通过该类型可以为我们的 functionapi 提供准确的入参和出参类型。Model 通过 model modelName { key: valueType } 的方式定义,valueType 可以为基础类型、复杂类型及 Model

modelSimple {
name: string,
age: number}
modelComplex {
// 数组类型arr: [ string ],
// Map 类型collection: map[string]string,
// Model 类型otherModel: Simple,
// object 类型obj: object,
// any 类型key: any}

匿名 Model

ModelvalueType 中不仅可以使用已经定义好的 Model,还能直接在 valueType 处定义匿名 Model 使用。

modelComplex {
arr: [ string ],
// 通过匿名 Model 指定字段类型subModel: {
username: string,
age: number  }
}

Model 初始化

Model 的使用类似于 JavaTypeScript 中的 class,通过关键字 new 来得到 Model 的实例。

modelUser {
username: string,
age: number}
modelComplex {
arr: [ string ],
otherModel: User,
subModel: {
username: string,
age: number  }
}
// 模块的初始化函数init() {
varuser=newUser{
username='page',
age=18  };
varsubModel=newComplex.subModel{
username=user.username,
age=user.age  };
varcomplex=newComplex{
arr= [ 'page' ],
otherModel=user,
subModel=newComplex.subModel{
username=user.username,
age=user.age    }
  };
}

Model 的字段描述


通过字段的描述,可以更好的约束字段的行为,如限制最大值或最小值等,还能为字段的使用提供简单的介绍和说明。


目前支持的描述关键字:


  • maximum :
  • 限制字段的最大值,只能用于数字类型的字段。
  • minimum :
  • 限制字段的最小值,只能用于数字类型的字段。
  • maxLength :
  • 限制字段的最大长度,可以用于字符串、数组类型的字段。
  • minLength :
  • 限制字段的最小长度,可以用于字符串、数组类型的字段。
  • pattern :
  • 字符串的正则匹配规则,只能用于字符串类型的字段。
  • description :
  • 字段的描述信息。
  • example :
  • 字段的使用示例。
  • default :
  • 字段的默认值。


使用示例

modelUser {
username: string(
description="登陆账号",
example="johny",
maxLength=32,
minLength=5,
pattern="[a-z0-9A-Z]+"  ),
age: number(
description="年龄",
example="18",
maximum=150,
minimum=0,
default=18  )
}


目录
打赏
0
0
0
0
114
分享
相关文章
Swift 语言:什么是 Swift 的泛型(Generics)?
Swift 语言:什么是 Swift 的泛型(Generics)?
99 0
Python - typing 模块 —— TypeVar 泛型
Python - typing 模块 —— TypeVar 泛型
868 0
Python - typing 模块 —— TypeVar 泛型
Python - pydantic(1) 入门介绍与 Models 的简单使用
Python - pydantic(1) 入门介绍与 Models 的简单使用
631 0
python用于类型注解的库- typing
python用于类型注解的库- typing
55 0
FastAPI(22)- Pydantic Model 结合 Union、List 的使用场景
FastAPI(22)- Pydantic Model 结合 Union、List 的使用场景
530 0
FastAPI(22)- Pydantic Model 结合 Union、List 的使用场景
FastAPI(14)- 路径操作函数参数的类型是一个嵌套 Pydantic Model 的使用场景
FastAPI(14)- 路径操作函数参数的类型是一个嵌套 Pydantic Model 的使用场景
215 0
FastAPI(14)- 路径操作函数参数的类型是一个嵌套 Pydantic Model 的使用场景
Darabonba 语言学习--Darafile 详解
本篇文章仅作为本人学习记录,如涉及侵权问题。及时联系作者,予以删除。
329 0
Python - pydantic(2)嵌套模型
Python - pydantic(2)嵌套模型
624 0
Darabonba 语言学习--复合类型
简介: 本篇文章仅作为本人学习记录,如涉及侵权问题。及时联系作者,予以删除。
233 0

热门文章

最新文章