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
Extending and Simplifying C++: Thoughts on Pattern Matching using 'is' and 'as', and Can C++ be 10x Simpler & Safer?0 码力 | 108 页 | 5.08 MB | 1 年前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
[试读]15天学会JavaScript - 第 2 章
ECMAScript语法基础 ECMAScript 变量是弱类型的 在学习高级编程语言的过程中,最先接触的,也是最重要的概念应该就是变量了。所谓“变量”,一般意义上理解就是程序中用于存储数据信息的容器,或者也可以理解为用于替代数据信息的符号。 ECMAScript 规范中定义的变量既可以存储数据信息,也可以定义为替代表达式的符号。一般都是通过 “var” 关键字来定义变量,且定义的均是无特定类型的变量(也称为弱类型)。因此,ECMAScript cript 变量可以初始化为任意类型的值,且可以随时改变变量的数据类型。当然,我们不建议随意改变变量的数据类型,建议初始化成什么类型就一直沿用该类型,避免不必要的麻烦。 #### 2.2.2 变量的声明 ECMAScript 规范中规定通过 “var”(单词 variable 的缩写)关键字来定义声明的变量,当然也可以不使用 “var” 关键字。一般使用 “var” 关键字定义的是局部变量,而不使用 关于【代码 2-1】的分析如下: 第 02~03 行代码通过 “var” 关键字分别定义了两个变量(i 和 j),并进行了初始化赋值操作。注意,这里赋的值均是整数类型,因为 ECMAScript 变量弱类型的特点,所以解释程序会自动为变量创建整数值; 第 04 行代码通过 “var” 关键字定义了一个变量表达式 $ (\mathrm{var~s}=i+j; $ ),而表达式中的变量0 码力 | 52 页 | 3.83 MB | 2 年前3
7-韦泽华-一键将C和Cpp代码转换为Python能调用的代码 ## 一 键将 C/C++ 代码转换为 Python 能调用的代码 韦泽华 0 码力 | 12 页 | 1.24 MB | 2 年前3
基于 Rust Arrow Flight 的物联网和时序数据传输及转换工具 霍琳贺2023 第三届中国 Rust 开发者大会 6.17-6.18 @Shanghai Rust China Conf 2023 ## 基于 Rust Arrow Flight 的物联网和时序数据传输及转换工具 霍琳贺 涛思数据 ## CONTENTS 自我介绍 TDengine taosX Rust 使用 ## TDengine TDengine 应用开发组 • ## CONTENTS 自我介绍 TDengine taoSX Rust 使用 ## Why Rust? · 安全性 · 高性能 · 跨平台兼容 · 强大的类型系统和抽象表达能力 • 优秀的 Rust 生态和开发工具链 • CFFI 互操作能力 • async/await 异步编程 ## Rust - Crates Used in taosX • Async0 码力 | 29 页 | 2.26 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 从稀疏数据结构到量化数据类型(-7 % 4 + 4) % 4; printf("%d\n", x); } - 此外如果 b 一定是 2 的幂次方,那么 (unsigned)a % b 也可以(先转换成无符号的取模)。 ## 高效的解決:位运算 & • 如果 b 是 2 的幂次方,即:2, 4, 8, 16, 32 等。 • 则: $ a \% b = a \& (b - 1) { 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 指令。 我们需要负方向无限延伸的稀疏数据结果,那就只要0 码力 | 102 页 | 9.50 MB | 2 年前3
Nim 2.0.2 中文手册组件构成的内存。变量本质上是地址的名称,每个变量和地址都有特定的 type "类型",变量的类型被称为 static type "静态类型",地址的类型被称为 dynamic type "动态类型"。如果静态类型与动态类型不相同,它就是动态类型的父类或子类。 identifier "标识符"是变量、类型、过程等的名称声明符号,一个声明所适用的程序区域被称为该声明的 (AST) "抽象语法树"的内部数据结构,在执行代码或将其编译为可执行文件之前,通过 semantic analysis "语义分析"对 AST 进行转换,增加了语义信息,如表达式类型、标识符的含义,以及在某些情况下表达式的值。在语义分析中检测到的错误被称为 static error "静态错误",当前手册中描述的错误在没有其他约定时,就是静态错误。 HH; 十进制值HH 只允许两个十六进制数字| 一个字符不是 Unicode 字符,而是单字节。 原由:为了能够有效地支持 array[char, int] 和 set[char]。 Rune 类型可以代表任何 Unicode 字符。Rune 声明在 Unicode 模块 (unicode.html) 中。 如果前面有一个反引号 Token,则不以 ' 结尾的字符字面值被解释为0 码力 | 127 页 | 7.05 MB | 1 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













