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
Beyond struct: Programming a Struct Replacement in C++200 码力 | 65 页 | 702.78 KB | 1 年前3
MoonBit月兔编程语言 现代编程思想 第五课 数据类型:树、二叉树、二叉搜索树、AVL树R-Tree:存储空间几何结构 · ..... ## 数据结构:二叉树 - 二叉树要么是一棵空树,要么是一个节点;它最多具有两个子树:左子树与右子树。 - 叶节点的两个子树都是空树 • 基于递归枚举类型的定义(本节课默认存储数据为整数) 1. enum IntTree { 2. Node(Int, IntTree, IntTree) // 存储的数据,左子树,右子树 3. Empty0 码力 | 29 页 | 1015.26 KB | 2 年前3
1.2.3 Go 泛型设计t=""> T Add(T a, T b) { return a + b; } 子类型多态,行多态…: ’ alt=‘OCR图片’/> Go中的interface 鸭子定律: 当看到一个动物走起来像鸭子、游起来像鸭子、叫起来也像鸭子,那么这只动物就可以被称为鸭子。 type Duck interface { walk() quack() } MyVector(t)(v)看上去像是两次函数调用 type关键字使用混乱 部分场景实现困难: 支持通用运算符 支持泛型方法 ’ alt=‘OCR图片’/> 早期提案-Generalized Types(广义类型) gen [t] type Lesser(t) interface { Less(t) bool } gen [t Lesser[T]] func Min(a, b t) t { return a } return b } 非常接近最终形态 对之前遗留的问题开始寻找解决方案: 完善了类型推导方案 完善了类型检查方案 3. 问题: 语法:类型参数定义在左边,使用在右边 类型推导虽然提出了方案,但过于复杂不好工程化 ’ alt=‘OCR图片’/> 其他 其他 [] or <>? a, b = w < x, y >0 码力 | 35 页 | 1.31 MB | 1 月前3
Go基础语法宝典关键字 go的二十五个关键字 简介 数据类型的定义 定义变量 常量 内置基础类型 Boolean 数值类型 字符串 错误类型 分组声明 iota枚举 Go程序设计的一些规则 array、slice、map array slice slice有一些简便的操作 slice有几个有用的内置函数 map make、new操作 零值 流程控制 if goto switch 函数 函数的定义 多个返回值 变参 传值与传指针 defer 函数作为值、类型 Panic和Recover main函数和init函数 import 1、相对路径 2、绝对路径 特殊的import 1、点操作 2、别名操作 3、操作 struct类型 struct类型的声明 struct的匿名字段 method method 指针作为receiver 什么是interface interface类型 interface值 interface函数参数 interface变量存储的类型 嵌入interface 反射 并发 goroutine channels Buffered Channels Range和Close Select 超时 runtime goroutine 错误处理 Error类型 自定义Error 错误处理 总结0 码力 | 47 页 | 1020.34 KB | 2 年前3
Python3 基础教程 - 廖雪峰第一个 Python 程序.....18 使用文本编辑器.....19 Python 代码运行助手.....25 输入和输出.....28 Python 基础.....32 数据类型和变量.....33 字符串和编码.....43 使用 list 和 tuple.....53 条件判断.....60 循环.....64 使用 dict 和 set.....67 总的来说,Python 的哲学就是简单优雅,尽量写容易看明白的代码,尽量写少的代码。如果一个资深程序员向你炫耀他写的晦涩难懂、动不动就几万行的代码,你可以尽情地嘲笑他。 那 Python 适合开发哪些类型的应用呢? 首选是网络应用,包括网站、后台服务等; 其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等; 另外就是把其他语言开发的程序再包装起来,方便使用。 最后说说 Python 的缺点。 自动转换为 4 个空格,确保不混用 Tab 和空格。 ## 数据类型和变量 ## 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在 Python 中,能够直接处理的数据类型有以下几种: ## 整数 Python 可以处理任意大小0 码力 | 531 页 | 5.15 MB | 2 年前5
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













