TypeScript 类型系统
TypeScript 类型系统 2 0 2 1 年 1 月 2 1 日 分 享 人 陈 文 岗 : 学 校 中国科学院大学 : 关于TypeScript 2 TypeScript是微软推出的JavaScript静态类型版本,它是 JavaScript的超集,可以编译为纯粹的JavaScript TypeScript 到 JavaScript 3 add.ts add.js add ts TypeScript 基础类型 4 TypeScript 高级类型 5 TypeScript 高级类型 6 TypeScript 高级类型 7 TypeScript 高级类型 8 TypeScript 特殊类型 9 TypeScript 结构类型系统 10 标明类型系统 即使两个类的结构完全一致,也不能互相赋值 结构类型系统 类型形状一致即可互相赋值 TypeScript TypeScript 类型声明空间 11 类型声明空间里包含用来当做类型注解的内容 类型不能赋给一个变量,也不能作为值进行传递(class除外) TypeScript 变量声明空间(值空间) 12 变量声明空间包含可用作变量的内容 class既属于类型声明空间,也属于变量声明空间 普通的变量/常量不能用作类型注解 TypeScript 函数重载 13 1. TypeScript类型信息只存在于编译期,不会带到运行期0 码力 | 25 页 | 1.27 MB | 1 年前35 刘知杭 静态类型的Python
静态类型的Python Lyzh(刘知杭) 目录 CONTENTS 有关类型的概念 使用mypy对Python源 代码进行静态分析 代数数据类型 拓展知识 关于类型的一些基本概念 有类型不等于有类型系统 动态语言类型化的必要性 不久前的一个案例 正文 类型的概念 CPython定义了PyObject这个 结构体作为对象头。 CPython中的类型,是指在对 象头中指向类型元信息的指针。 象头中指向类型元信息的指针。 CPython有类型,但CPython没有类型系统。这就是CsPython中诸多问题的由来。 类型系统是什么? 类型系统(type system)的基本目标是防止程序在运行时发生类型错误。当且仅当语言运行时 不存在任何形式的类型错误,那么它就是sound的。soundness是类型系统研究的重要目标。 类型系统(type system)是一种编译期(Compile-time)的类型推导检查规则。 ime)的类型推导检查规则。 类型系统就是一种轻量级的形式化方法,它通常被植入编译器或程序分析器中进行自动校验。 从而让那些不熟悉底层理论的程序员也可以使用它们。 这类轻量级技术中还包括模型检测(Model checking),运行时验证(Runtime verification)和类型系统(Type system)等等。其中类型系统最流行,发展最完善。 在计算机科学中,形式化方法(Formal0 码力 | 42 页 | 6.87 MB | 1 年前3基本数据类型
基本数据类型 主讲人:龙良曲 All is about Tensor python PyTorch Int IntTensor of size() float FloatTensor of size() Int array IntTensor of size [d1, d2 ,…] Float array FloatTensor of size [d1, d2, …] string0 码力 | 16 页 | 1.09 MB | 1 年前3MoonBit月兔编程语言 现代编程思想 第四课 多元组, 结构体,枚举类型
现代编程思想 多元组,结构体与枚举类型 Hongbo Zhang 1 基础数据类型:多元组与结构体 2 回顾:多元组 多元组:固定⻓度的不同类型数据的集合 定义: (<表达式>, <表达式>, ...) 类型: (<表达式类型>, <表达式类型>, ...) 例如: 身份信息: ("Bob", 2023, 10, 24): (String, Int, Int, Int) 成员访问: (2023, 10, 24).0 == 2023 列表:任意⻓度的相同类型数据的集合 例如: 字符的序列: Cons('H', Cons('i', Cons('!', Nil))) Cons : construct 的缩写 3 笛卡尔积 ⼀个多元组类型的元素即是每个组成类型的元素构成的有序元素组 集合的笛卡尔积,⼜称积类型 例:扑克牌的所有花⾊:{ } 4 结构体 元组的问题在于,难以理解其所代表的数据 address: String; postal: Int } 通过名称,我们能明确数据的信息以及对应字段的含义 5 结构体的定义 结构体的定义形如 struct <结构体名称> { <字段名>: <类型> ; ... } struct PersonalInfo { name: String; age: Int} 定义结构体的值时,形如 { <字段名>: <值> , ... } let info:0 码力 | 26 页 | 435.86 KB | 1 年前3C++高性能并行编程与优化 - 课件 - 10 从稀疏数据结构到量化数据类型
从稀疏数据结构到量化数据类型 by 彭于斌( @archibate ) 往期录播: https://www.bilibili.com/video/BV1fa411r7zp 课程 PPT 和代码: https://github.com/parallel101/course 本课涵盖:稀疏矩阵、 unordered_map 、空间稀 疏网格、位运算、浮点的二进制格式、内存带宽优 化 面向人群:图形学、 >> 3 。 >> 2 = 位运算 >> 对负数的处理 signed 类型的 >> n 会把最高位复制 n 次。 因为补码的特性,这导致负数 >> 的结果仍是负 数。 这样就实现了和 Python 一样的始终向下取整除 法。 >> 2 = unsigned 类型的位运算 >> 不一样 而 unsigned 类型的 >> n 会不会复制最高位, 只是单纯的位移,这会导致负数的符号位单独被位 只是单纯的位移,这会导致负数的符号位单独被位 移,补码失效,造成结果不对。 unsigned 类型的 >> 会生成 shr 指令, signed 类型的 >> 会生成 sar 指令。 我们需要负方向无限延伸的稀疏数据结果,那就只 要 signed 那个就行。 >> 2 = 没有重合时可以用高效的加法:位运算 | • 如果可以保证 a 和 b 满足 a & b = 0 , 如: • 1011000 和 00001100 码力 | 102 页 | 9.50 MB | 1 年前3MoonBit月兔编程语言 现代编程思想 第五课 数据类型:树、二叉树、二叉搜索树、AVL树
B-Tree:适合顺序访问,利于硬盘存储数据 R-Tree:存储空间⼏何结构 …… 8 数据结构:⼆叉树 ⼆叉树要么是⼀棵空树,要么是⼀个节点;它最多具有两个⼦树:左⼦树与右⼦树 叶节点的两个⼦树都是空树 基于递归枚举类型的定义(本节课默认存储数据为整数) 1. enum IntTree { 2. Node(Int, IntTree, IntTree) // 存储的数据,左⼦树,右⼦树 3. Empty 40 码力 | 29 页 | 1015.26 KB | 1 年前3C++高性能并行编程与优化 - 课件 - Zeno 中的现代 C++ 最佳实践
https://github.com/zenustech/zeno/tree/zeno2 • Zeno 1.0 所在的分支: https://github.com/zenustech/zeno/ Zeno 中的基本类型 • IObject 一切对象的公共基类。 • INode 一切节点的公共基类。 多态的经典案例 • IObject 具有一个 eatFood 纯虚函数,而 CatObject 和 DogObject IObject * 存储的指针在 delete 时只 会释放 IObject 里的成员,而不会释放 CatObject 里的成员 string m_catFood 。所以 这里的解构函数也是多态的,他根据类型的不同 调用不同派生类的解构函数。 多态用于设计模式之“模板模式” • 这样之后如果有一个任务是要基于 eatFood 做文章,比如要重复 eatFood 两遍。 • 就可以封装到一个函数 eatTwice IOBJECT_DEFINE_CLONE ,其内容是 clone 的实现。这里我们用 std::decay_t快速获取了 this 指针所指向的类型,也就是当前所在类的类型 。 • 宏的缺点是他不遵守命名空间的规则,宏的名 字是全局可见的,不符合 C++ 的高大尚封装思 想。 • 宏: IOBJECT_DEFINE_CLONE • 高大尚 C++ 0 码力 | 54 页 | 3.94 MB | 1 年前3Krita 5.2 中文手册
轴线倾斜的对称绘画 辅助尺 辅助尺类型 技术图纸透视设置范例 理解和处理图像 图像文件包含的数据 元数据 图像大小 作者和描述信息 裁剪和调整画布大小 调整画布大小 保存、导出和打开文件 保存、自动保存、备份文件 保存 自动保存 备份文件 模板 动画模板 欧美漫画模板 设计模板 单反相机模板 纹理模板 图层和蒙版 图层的管理 图层类型 Krita 的图层合成顺序 继承透明度和剪贴图层 [https://krita.org/download/]下载。 下载页面将自动检测你的操作系统类型 (64 或 32 位) 并显示适合的版本。 你也可以点击“下载其他版本”链接显示所有可供下载的版本。如果你不确 定系统为何种类型,可前往 设置 ‣ 系统 ‣ 关于 查看。你的操作系统类型 将显示在该页面 设备规格 小节的 系统类型 中。 在默认情况下网站提供的是一个安装程序 (.exe),你也可以自选下载免安 在笔刷预设面板中,点击任意一个笔刷图标就等于选中了该笔刷,它会被用于 在画布上作画。要更改颜色,请在高级拾色器面板的三角形区域点击选择。 擦除 在笔刷预设里面有各种橡皮擦,但你也可以直接按 E 切换到擦除模式,直接用 当前笔刷来擦除内容。除手绘笔刷外,直线工具、矩形工具、甚至渐变工具等 大多数工具都可以切换到擦除模式用于擦除内容。 保存文件 把作品画出来之后,接下来就是保存了。要保存图像,可点击主菜单的 文件 然 后点击 保存0 码力 | 1594 页 | 79.20 MB | 1 年前3Krita 5.2 官方文档中文版 2023-12-08A
轴线倾斜的对称绘画 辅助尺 辅助尺类型 技术图纸透视设置范例 理解和处理图像 图像文件包含的数据 元数据 图像大小 作者和描述信息 裁剪和调整画布大小 调整画布大小 保存、导出和打开文件 保存、自动保存、备份文件 保存 自动保存 备份文件 模板 动画模板 欧美漫画模板 设计模板 单反相机模板 纹理模板 图层和蒙版 图层的管理 图层类型 Krita 的图层合成顺序 继承透明度和剪贴图层 [https://krita.org/download/]下载。 下载页面将自动检测你的操作系统类型 (64 或 32 位) 并显示适合的版本。 你也可以点击“下载其他版本”链接显示所有可供下载的版本。如果你不确 定系统为何种类型,可前往 设置 ‣ 系统 ‣ 关于 查看。你的操作系统类型将 显示在该页面 设备规格 小节的 系统类型 中。 在默认情况下网站提供的是一个安装程序 (.exe),你也可以自选下载免安装 在笔刷预设面板中,点击任意一个笔刷图标就等于选中了该笔刷,它会被用于 在画布上作画。要更改颜色,请在高级拾色器面板的三角形区域点击选择。 擦除 在笔刷预设里面有各种橡皮擦,但你也可以直接按 E 切换到擦除模式,直接用 当前笔刷来擦除内容。除手绘笔刷外,直线工具、矩形工具、甚至渐变工具等 大多数工具都可以切换到擦除模式用于擦除内容。 保存文件 把作品画出来之后,接下来就是保存了。要保存图像,可点击主菜单的 文件 然后点击 保存0 码力 | 1562 页 | 79.19 MB | 1 年前3Krita 5.1 官方文档中文版 2023-05-26A
轴线倾斜的对称绘画 辅助尺 辅助尺类型 技术图纸透视设置范例 理解和处理图像 图像文件包含的数据 元数据 图像大小 作者和描述信息 裁剪和调整画布大小 调整画布大小 保存、导出和打开文件 保存、自动保存、备份文件 保存 自动保存 备份文件 模板 动画模板 欧美漫画模板 设计模板 单反相机模板 纹理模板 图层和蒙版 图层的管理 图层类型 Krita 的图层合成顺序 继承透明度和剪贴图层 [https://krita.org/download/]下载。 下载页面将自动检测你的操作系统类型 (64 或 32 位) 并显示适合的版本。 你也可以点击“下载其他版本”链接显示所有可供下载的版本。如果你不确 定系统为何种类型,可前往 设置 ‣ 系统 ‣ 关于 查看。你的操作系统类型将 显示在该页面 设备规格 小节的 系统类型 中。 在默认情况下网站提供的是一个安装程序 (.exe),你也可以自选下载免安装 在笔刷预设面板中,点击任意一个笔刷图标就等于选中了该笔刷,它会被用于 在画布上作画。要更改颜色,请在高级拾色器面板的三角形区域点击选择。 擦除 在笔刷预设里面有各种橡皮擦,但你也可以直接按 E 切换到擦除模式,直接用 当前笔刷来擦除内容。除手绘笔刷外,直线工具、矩形工具、甚至渐变工具等 大多数工具都可以切换到擦除模式用于擦除内容。 保存文件 把作品画出来之后,接下来就是保存了。要保存图像,可点击主菜单的 文件 然后点击 保存0 码力 | 1547 页 | 78.22 MB | 1 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100