TypeScript 类型系统## TypeScript 类型系统 分享人:陈文岗 学校:中国科学院大学 2021年1月21日 ## 关于TypeScript TypeScript是微软推出的JavaScript静态类型版本,它是JavaScript的超集,可以编译为纯粹的JavaScript TypeScript How Does TypeScript Work? TypeScript file.ts JavaScript jpg) ## TypeScript 基础类型 // 数字类型 let num: number; num = 123; // 布尔类型 let flag: boolean; flag = false; // 字符串类型 let str: string; str = 'Hello World'; ## TypeScript 高级类型 // 数组类型 let arr: number]; arr 'chenwengang', age: 23 }; // 函数类型/函数签名 type Callback = () => void; let cb:Callback = () => { console.log('callback'); }; ## TypeScript 高级类型 // 交叉类型 type User1 = { name: string;0 码力 | 25 页 | 1.27 MB | 2 年前3
5 刘知杭 静态类型的Python## 静态类型的Python PYTHON 30th Lyzh(刘知杭) ## 目录 CONTENTS ➤ 有关类型的概念 使用mypy对Python源代码进行静态分析 代数数据类型 拓展知识 ## 关于类型的一些基本概念 有类型不等于有类型系统 PYTHON 30th 动态语言类型化的必要性 ## 不久前的一个案例 ☀️ ☀️ ☁️ rl = filter(lambda x: HttpResponse(json.dumps(rl), content_type='application/json') ## 类型的概念 CPython定义了PyObject这个结构体作为对象头。 CPython中的类型,是指在对象头中指向类型元信息的指针。 ## ●●● // cpython/include/object.h #define PyObject_HEAD PyObject CPython有类型,但CPython没有类型系统。这就是CsPython中诸多问题的由来。 ## 类型系统是什么? 类型系统(type system)是一种编译期(Compile-time)的类型推导检查规则。 类型系统(type system)的基本目标是防止程序在运行时发生类型错误。当且仅当语言运行时不存在任何形式的类型错误,那么它就是sound的。soundness是类型系统研究的重要目标。0 码力 | 42 页 | 6.87 MB | 2 年前3
基本数据类型## PyTorch ## 基本数据类型 主讲人:龙良曲 ## All is about Tensor |python|PyTorch| |---|---| |Int|IntTensor of size()| |float|FloatTensor of size()| |Int array|IntTensor of size \[d1, d2, ...]| |Float array|FloatTensor0 码力 | 16 页 | 1.09 MB | 2 年前3
MoonBit月兔编程语言 现代编程思想 第四课 多元组, 结构体,枚举类型# 现代编程思想 多元组,结构体与枚举类型 Hongbo Zhang 基础数据类型:多元组与结构体 ## 回顾:多元组 • 多元组:固定长度的不同类型数据的集合 ☐ 定义: $ (\leq $ 表达式 $ \gt $ , $ \leq $ 表达式 $ \gt $ , $ \geq $ ) ☐ 类型:(<表达式类型>,<表达式类型>,...) ○ 例如: ■ 身份信息:("Bob" == 2023 • 列表:任意长度的相同类型数据的集合 ○ 例如: ■ 字符的序列:Cons('H', Cons('i', Cons('!', Nil))) Cons : construct 的缩写 ## 笛卡尔积 - 一个多元组类型的元素即是每个组成类型的元素构成的有序元素组。集合的笛卡尔积,又称积类型 。例:扑克牌的所有花色: $ \{ $ postal: Int } 通过名称,我们能明确数据的信息以及对应字段的含义 ## 结构体的定义 - 结构体的定义形如 struct <结构体名称> { <字段名>: <类型> ; ... } o struct PersonalInfo { name: String; age: Int} • 定义结构体的值时,形如 { <字段名>: <值>0 码力 | 26 页 | 435.86 KB | 2 年前3
C++高性能并行编程与优化 - 课件 - 10 从稀疏数据结构到量化数据类型{ int x = -7 >> 2; printf("%d\n", x); } 1 ## 位运算 >> 对负数的处理 signed 类型的 >> n 会把最高位复制 n 次。 因为补码的特性,这导致负数 >> 的结果仍是负数。 这样就实现了和 Python 一样的始终向下取整除法。 ## 11001010 printf("%d\n", x); } -2 ## unsigned 类型的位运算 >> 不一样 而 unsigned 类型的 >> n 会不会复制最高位, 只是单纯的位移,这会导致负数的符号位单独被位 移,补码失效,造成结果不对。 unsigned 类型的 >> 会生成 shr 指令,signed 类型的 >> 会生成 sar 指令。 我们需要负方向无限延伸的稀疏数据结果,那就只要 2; } bate::timing("main"); return 0; } ## 使用 int64_t :每个占据 8 字节 • 如果用更大的数据类型,用时会直接提升两倍! 这是因为 i%2 的计算时间,完全隐藏在内存的超高延迟里了。 - 可见,当数据量足够大,计算量却不多时,读写数据量的大小唯一决定着你的性能。 - 特别是并行以后,计算量可以被并行加速,而访存却不行。0 码力 | 102 页 | 9.50 MB | 2 年前3
KiCad 8.0 PCB 计算器E 系列.....3 色环.....4 传输线.....4 过孔外径.....6 布线宽度.....6 电气间距.....7 电路板类型.....7 ## 参考手册 ## 版权 本文件的版权(C)2019-2021年由下列贡献者所拥有。您可以根据GNU通用公共许可证(http://www.gnu.org/licenses/GPL 计算器是一组实用程序,可帮助您查找布局的元件或其他参数的值。计算器具有以下工具: • 稳压器 • 布线宽度 电气间距 • 传输线 射频衰减器 • 色环电阻 电路板类型 ## 计算器 稳压器 该计算器有助于找到线性和低压差稳压器所需的电阻值。  $$ 对于 3 端子类型,由于从调整引脚流过的静态电流 Iadj,有一个校正系数: $$ Vout=Vref\cdot\left(\frac{R1+R2}{R1}\right)+Iadj\cdot R2 $$ 该电流通常低于0 码力 | 8 页 | 503.89 KB | 2 年前3
MoonBit月兔编程语言 现代编程思想 第五课 数据类型:树、二叉树、二叉搜索树、AVL树R-Tree:存储空间几何结构 · ..... ## 数据结构:二叉树 - 二叉树要么是一棵空树,要么是一个节点;它最多具有两个子树:左子树与右子树。 - 叶节点的两个子树都是空树 • 基于递归枚举类型的定义(本节课默认存储数据为整数) 1. enum IntTree { 2. Node(Int, IntTree, IntTree) // 存储的数据,左子树,右子树 3. Empty0 码力 | 29 页 | 1015.26 KB | 2 年前3
KiCad PCB 编辑器 7.0
. 8 创建 PCB ..... 9 PCB 的基本概念 ..... 9 性能 ..... 9 从原理图开始 ..... 9 从头开始 ..... 10 电路板设置 ..... 10 编辑电路板 ..... 18 放置和绘制操作 ..... 18 捕捉 ..... 19 编辑对象属性 ..... 19 使用封装 ..... 20 使用焊盘 ..... ..... 35 向前和向后批注 ..... 42 锁定 ..... 46 批量编辑工具 ..... 47 清理工具 ..... 47 正在导入图形 ..... 47 检查电路板 ..... 48 测量工具 ..... 48 设计规则检查 ..... 48 查找工具 ..... 51 搜索面板 ..... 52 3D 查看器 ..... 52 网络检查 消息面板和状态栏 4. 右侧工具栏 (绘图和设计工具) 5. 外观面板 6. 选择过滤器面板 ## 导航编辑画布 编辑画布是正在设计的板上的视图。您可以平移和缩放到电路板的不同区域,也可以翻转视图以从底部显示电路板。 默认情况下,用鼠标中键或右键拖动会平移画布视图,滚动鼠标滚轮会放大或缩小视图。你可以在偏好设置中的鼠标和触摸板部分改变这一行为(详见《配置和定制,配置和定制》)。 在顶0 码力 | 119 页 | 6.87 MB | 2 年前3
KiCad PCB 编辑器 6.0
. 7 创建 PCB ..... 9 基本 PCB 概念 ..... 9 性能 ..... 9 从原理图开始 ..... 9 从头开始 ..... 11 电路板设置 ..... 11 编辑电路板 ..... 18 放置和绘制操作 ..... 18 捕捉 ..... 19 编辑对象属性 ..... 19 使用封装 ..... 19 使用焊盘 ..... ..... 30 向前和向后批注 ..... 36 锁定 ..... 36 批量编辑工具 ..... 37 清理工具 ..... 37 正在导入图形 ..... 37 检查电路板 ..... 38 测量工具 ..... 38 设计规则检查 ..... 38 Find tool ..... 41 3D 查看器 ..... 42 网络检查 ..... 45 消息面板和状态栏 4. 右侧工具栏 (绘图和设计工具) 5. 外观面板 6. 选择过滤器面板 ## 导航编辑画布 编辑画布是正在设计的板上的视图。您可以平移和缩放到电路板的不同区域,也可以翻转视图以从底部显示电路板。 By default, dragging with the middle or right mouse button will pan the canvas view and0 码力 | 101 页 | 4.78 MB | 2 年前3
KiCad 8.0 PCB 编辑器性能 ..... 10 从原理图开始 ..... 10 从头开始 ..... 11 电路板设置 ..... 11 编辑电路板 ..... 20 放置和绘制操作 ..... 20 Grids and snapping ..... 21 编辑对象属性 ..... 23 电路板边框 (Edge Cuts) ..... 25 使用封装 ..... 25 使用焊盘 . 向前和向后批注 ..... 63 锁定 ..... 70 Groups ..... 70 Creating Arrays ..... 72 清理工具 ..... 75 检查电路板 ..... 77 测量工具 ..... 77 设计规则检查 ..... 77 Board Statistics ..... 80 查找工具 ..... 81 搜索面板 ..... 82 左侧工具栏(显示选项) 3. 消息面板和状态栏 4. 右侧工具栏 (绘图和设计工具) 5. 外观面板 6. 选择过滤器面板 ## 浏览编辑画布 编辑画布是正在设计的电路板视图。您可以平移和缩放到电路板的不同区域,也可以翻转视图以从底部显示电路板。 默认情况下,用鼠标中键或右键拖动会平移画布视图,滚动鼠标滚轮会放大或缩小视图。你可以在偏好设置中的鼠标和触摸板部分改变这一行为(详见配置和定制)。 在顶0 码力 | 194 页 | 8.27 MB | 2 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













