
程序设计语言
文章平均质量分 84
魔豆Magicbean
这个作者很懒,什么都没留下…
展开
-
[TypeScript] 编程实践之1: Google的TypeScript代码风格13:语法
TypeScript语言规范A 语法A.1 类型A.2 表达式A.3 语句A.4 函数A.5 接口A.6 类A.7 枚举A.8 命名空间A.9 Script和ModulesA.10 AmbientA 语法本附录包含在主文档中找到的语法摘要。 如2.1节所述,TypeScript语法是ECMAScript 2015语言规范(特别是ECMA-262标准,第6版)中定义的语法的超集,本附录仅列出从ECMAScript语法中新增或修改的产品。A.1 类型TypeParameters: < TypeP翻译 2020-06-01 17:37:55 · 583 阅读 · 0 评论 -
[TypeScript] 编程实践之1: Google的TypeScript代码风格12:Ambients
TypeScript语言规范12 Ambients12.1 Ambients声明12.1.1 Ambient变量声明12.1.2 Ambient函数声明12.1.3 Ambient类声明12.1.4 Ambient枚举声明12.1.5 Ambient命名空间声明12.2 Ambient模块声明12 Ambients环境声明用于在现有JavaScript代码上提供静态类型。 环境声明与常规声明的不同之处在于,不会为它们生成JavaScript代码。 环境声明不是引入新的变量,函数,类,枚举或命名空间,而是翻译 2020-06-01 17:36:08 · 555 阅读 · 0 评论 -
[TypeScript] 编程实践之1: Google的TypeScript代码风格11:Script和Modules
TypeScript语言规范11 Scripts和Modules11.1 程序和源文件11.1.1 源文件依赖11.2 Script11.3 Modules11.3.1 Module命名11.3.2 导入声明11.3.3 Import Require声明11.3.4 Export声明11.3.4.1 Export修饰符11.3.4.2 Export Default声明11.3.4.3 Export list声明11.3.4.4 导出成员集11.3.5 Export赋值11.3.6 CommonJS模块11.翻译 2020-06-01 17:34:33 · 669 阅读 · 0 评论 -
[TypeScript] 编程实践之1: Google的TypeScript代码风格10:命名空间
TypeScript语言规范10 命名空间10.1 命名空间声明10.2 命名空间体10.3 导入别名声明10.4 导出声明10.5 声明合并10.6 代码生成10 命名空间命名空间提供了一种在命名容器的层次结构中组织代码和声明的机制。 命名空间具有命名的成员,每个成员表示一个值,一个类型或一个命名空间,或其某种组合,这些成员可以是本地的也可以是导出的。 命名空间的主体对应于一次执行的功能,从而提供了一种机制,用于确保局部状态并确保隔离。 命名空间可以看作是立即调用的函数表达(IIFE)模式的形式化形式翻译 2020-06-01 17:32:46 · 430 阅读 · 0 评论 -
[TypeScript] 编程实践之1: Google的TypeScript代码风格9:枚举
TypeScript语言规范9 枚举9.1 枚举声明9.2 枚举成员9.3 声明合并9.4 常量枚举声明9.5 代码生成9 枚举枚举类型是Number原语类型的独特子类型,具有一组关联的命名常量,这些常量定义了枚举类型的可能值。9.1 枚举声明枚举声明声明一个枚举类型和一个枚举对象。EnumDeclaration: constopt enum BindingIdentifier { EnumBodyopt }EnumDeclaration在包含的声明空间中引入了命名类型(枚举类型)和命名值(翻译 2020-06-01 17:31:34 · 386 阅读 · 0 评论 -
[TypeScript] 编程实践之1: Google的TypeScript代码风格8:类
TypeScript语言规范8 类8.1 类声明8.1.1 类继承规范8.1.2 类体8.2 成员8.2.1 实例成员和静态成员8.2.2 可访问性8.2.3 继承和重置8.2.4 class类型8.2.5 构造函数类型8.3 构造函数声明8.3.1 构造函数参数8.3.2 超类调用8.3.3 自动构造函数8.4 属性成员函数声明8.4.1 成员变量声明8.4.2 成员函数声明8.4.3 成员访问者声明8.4.4 动态属性声明8.5 索引成员声明8.6 装饰者8.7 代码生成8.7.1 无extends从句翻译 2020-06-01 17:29:47 · 331 阅读 · 0 评论 -
[TypeScript] 编程实践之1: Google的TypeScript代码风格7:接口
TypeScript语言规范7 接口7.1 接口声明7.2 声明合并7.3 接口扩展类7.4 动态类型检查7 接口接口提供了命名和参数化对象类型并将现有命名对象类型组合为新对象的能力。接口没有运行时表示—它们纯粹是编译时构造。 接口对于记录和验证所需的属性形状,作为参数传递的对象以及从函数返回的对象特别有用。因为TypeScript具有结构类型系统,所以具有一组特定成员的接口类型被认为与具有相同成员组的另一个接口类型或对象类型文字相同(并且可以替代)(请参阅第3.11.2节)。类声明可以在自己的I翻译 2020-06-01 17:28:32 · 342 阅读 · 0 评论 -
[TypeScript] 编程实践之1: Google的TypeScript代码风格6:函数
TypeScript语言规范6 函数6.1 函数声明6.2 函数重载6.3 函数实现6.4 析构参数声明6.5 通用函数6.6 代码生成6.7 生成函数6.8 异步函数6.9 类型保护函数6 函数TypeScript扩展了JavaScript函数,以包括类型参数,参数和返回类型注释,重载,默认参数值和rest参数。6.1 函数声明扩展了函数声明,以允许在重载声明中省略函数主体。FunctionDeclaration: ( Modified ) function BindingIdentifier翻译 2020-06-01 17:26:38 · 391 阅读 · 0 评论 -
[TypeScript] 编程实践之1: Google的TypeScript代码风格5:语句
TypeScript语言规范5 语句5.1 块5.2 变量语句5.2.1 简单变量声明5.2.2 析构变量声明5.2.3 implied类型5.3 let和const声明5.4 If,Do和While语句5.5 for语句5.6 for-in语句5.7 For-of语句5.8 Continue语句5.9 Break语句5.10 Return语句5.11 With语句5.12 Switch语句5.13 Throw语句5.14 Try语句5 语句本章介绍TypeScript为JavaScript语句提供的静翻译 2020-06-01 17:24:58 · 1276 阅读 · 0 评论 -
[TypeScript] 编程实践之1: Google的TypeScript代码风格4:表达式
TypeScript语言规范4 表达式4.1 值和引用4.2 this关键字4.3 标识符4.4 文法4.5 Object文法4.6 数组文法4.7 模板文法4.8 括弧4.9 super关键字4.9.1 父类super调用4.9.2 父类属性存取4.10 函数表达式4.11 箭头函数4.12 Class表达式4.13 属性存取4.14 new操作算子4.15 函数调用4.15.1 重载解决方案4.15.2 类型参数推导4.15.3 语法歧义4.16 类型断言4.17 JSX表达式4.18 一元运算符4.1翻译 2020-06-01 17:23:20 · 803 阅读 · 0 评论 -
[TypeScript] 编程实践之1: Google的TypeScript代码风格3:类型
TypeScript语言规范3 类型3.1 Any类型3.2 基本类型3.2.1 Number类型3.2.2 Boolean类型3.2.3 String类型3.2.4 Symbol类型3.2.5 Void类型3.2.6 Null类型3.2.7 Undefined类型3.2.8 Enum类型3.2.9 String类型3.3 Object类型3.3.1 命名类型引用3.3.2 Array类型3.3.3 Tuple类型3.3.4 Function类型3.3.5 Constructor类型3.3.6 Member翻译 2020-06-01 17:21:24 · 559 阅读 · 0 评论 -
[TypeScript] 编程实践之1: Google的TypeScript代码风格2:基本概念
TypeScript语言规范2 基本概念2.1 语法约定2.2 命名2.2.1 保留字2.2.2 属性命名2.2.3 计算属性命名2.3 声明2.4 范围2 基本概念本文档的其余部分是TypeScript编程语言的正式规范,旨在作为ECMAScript 2015 Language Specification(特别是ECMA-262标准,第6版)的附件来阅读。 本文档描述了TypeScript所添加的语法,以及TypeScript编译器执行的编译时处理和类型检查,但是由于ECMAScript规范涵盖了该内翻译 2020-06-01 17:18:39 · 450 阅读 · 0 评论 -
[TypeScript] 编程实践之1: Google的TypeScript代码风格1:介绍
TypeScript语言规范1 介绍1.1 环境声明1.2 函数类型1.3 对象类型1.4 结构子类型化1.5 上下文类型推断1.6 类1.7 枚举类型1.8 字符串参数重载1.9 通用类型和功能1.10 命名空间1.11 模块版本1.82016年1月Microsoft自2012年10月1日起根据Open Web Foundation最终规范协议版本1.0(“ OWF 1.0”)提供此规范。OWF 1.0可以从http://www.openwebfoundation.org/legal/the-owf翻译 2020-06-01 17:14:15 · 1235 阅读 · 0 评论 -
[Javascript] 编程实践之1: Google的Javascript代码风格9:附件
Google的Javascript风格指南9 附件9.1 JSDoc标签参考9.1.1 类型注释和其他Closure Compiler注释9.1.2 文档注释9.1.2.1 @author 或者 @owner - 不推荐9.1.2.2 @bug9.1.2.3 @code -弃用, 不推荐使用9.1.2.4 @desc9.1.2.5 @link9.1.2.6 @see9.1.2.7 @supported9.1.3 适用于特定框架的注释9.1.3.1 @ngInject 特定于Angular 19.1.3.2翻译 2020-05-14 11:12:13 · 508 阅读 · 0 评论 -
[Javascript] 编程实践之1: Google的Javascript代码风格8:一些策略
Google的Javascript风格指南8 一些策略8.1 Google样式指南未明确指出的问题:请保持一致性!8.2 编译器警告8.2.1 使用标准警告集8.2.2 如何处理警告8.2.3 在最窄的合理范围内禁止警告8.3 弃用8.4 代码不是Google风格8.4.1 重新格式化已有代码8.4.2 新加入的代码:请遵照Google风格8.5 本地风格规则8.6 生成的代码:大部分豁免8 一些策略8.1 Google样式指南未明确指出的问题:请保持一致性!对于本规范未明确解决的任何样式问题,请优先翻译 2020-05-14 11:10:52 · 261 阅读 · 0 评论 -
[Javascript] 编程实践之1: Google的Javascript代码风格7:JSDoc
Google的Javascript风格指南7 JSDoc7.1 通用形式7.2 Markdown7.3 JSDoc标签7.4 换行7.5 顶级/文件级注释7.6 类注释7.7 Enum和typedef注释7.8 方法和函数注释7.9 属性注释7.10 Type注释7.10.1 可空性7.10.2 类型转换7.10.3 模板参数类型7.10.4 函数类型表达式7.10.5 空格7.11 可见性注释7 JSDocJSDoc在所有类、域以及方法中被使用。7.1 通用形式在此示例中可以看到JSDoc块的基本翻译 2020-05-14 11:09:44 · 908 阅读 · 0 评论 -
[Javascript] 编程实践之1: Google的Javascript代码风格6:命名规范
Google的Javascript风格指南6 命名规范6.1 所有标识符的通用规则6.2 标识符类型规则6.2.1 Package命名6.2.2 Class命名6.2.3 Method命名6.2.4 Enum命名6.2.5 Constant命名6.2.5.1 “constant”的定义6.2.5.2 本地别名6.2.6 非常量域名称6.2.7 参数名称6.2.8 局部变量名称6.2.9 模板参数名称6.2.10 模块局部名称6.3 驼峰案例:定义6 命名规范6.1 所有标识符的通用规则标识符仅使用AS翻译 2020-05-14 11:07:58 · 543 阅读 · 0 评论 -
[Javascript] 编程实践之1: Google的Javascript代码风格5:语言特性
Google的Javascript风格指南5 语言特性5.1 局部变量声明5.1.1 const和let的使用5.1.2 每次只声明一个变量5.1.3 仅在需要时声明,并且尽快初始化5.1.4 根据需要声明类型5.2 数组文法5.2.1 使用拖拽逗号5.2.2 不要使用可变数组的构造函数5.2.3 非数值性质5.2.4 析构5.2.5 传播算子(Spread operator)5.3 对象文法5.3.1 使用拖拽逗号5.3.2 不要使用Object的构造函数5.3.3 不要混合使用含引号和不含引号的关键字5翻译 2020-05-14 11:05:53 · 500 阅读 · 0 评论 -
[Javascript] 编程实践之1: Google的Javascript代码风格4:格式化
Google的Javascript风格指南4 格式化4.1 大括弧4.1.1 在所有的控制结构中都使用大括弧4.1.2 非空块的K&R风格4.1.3 空块:可能更精炼4.2 块缩进:+2个空格4.2.1 数组文法:可类似于块4.2.2 对象文法:可类似于块4.2.3 类文法4.2.4 函数表达式4.2.5 Switch语句4.3 语句4.3.1 每行一条语句4.3.2 分号是必须的4.4 列数限制:804.5 换行4.5.1 在哪里做行中断4.5.2 缩进连续线至少+4个空格4.6 空格4.6.1翻译 2020-05-14 11:03:40 · 483 阅读 · 0 评论 -
[Javascript] 编程实践之1: Google的Javascript代码风格3:源文件结构
Google的Javascript风格指南3 源文件结构3.1 许可证或者版权信息(如果有)3.2 @fileoverview JSDoc (如果有)3.3 goog.module语句3.3.1 层次结构3.3.2 goog.module.declareLegacyNamespace3.3.3 goog.module导出3.4 ES模块3.4.1 导入3.4.1.1 导入路径3.4.1.1.1 在路径导入中的文件名扩展3.4.1.2 多次导入同一文件3.4.1.3 名称导入3.4.1.3.1 名称模块导入3翻译 2020-05-14 11:01:30 · 676 阅读 · 0 评论 -
[Javascript] 编程实践之1: Google的Javascript代码风格2:源文件基础
Google的Javascript风格指南2 源文件基础2.1 文件命名2.2 文件编码:UTF-82.3 特殊字符2.3.1 空格字符2.3.2 特殊转义序列2.3.3 非ASCII字符2 源文件基础2.1 文件命名文件名必须全部为小写,并且可以包含下划线(_)或者破折号(-),但不能包含其它标点符号。具体请遵循项目使用的约定。文件名的扩展名必须为.js。2.2 文件编码:UTF-8源文件编码方式为UTF-8。2.3 特殊字符2.3.1 空格字符除行终止符序列外,ASCII水平空格字符(0翻译 2020-05-14 10:58:56 · 189 阅读 · 0 评论 -
[Javascript] 编程实践之1: Google的Javascript代码风格1:简介
Google的Javascript风格指南内容目录1、简介1.1、术语注意事项1.2、规范注意事项2、源文件基础2.1、文件命名2.2、文件编码:UTF-82.3、特殊字符2.3.1、空格字符2.3.2、特殊转义序列2.3.3、非ASCII字符3、源文件结构3.1、许可证或者版权信息(如果有)3.2、@fileoverview JSDoc (如果有)3.3、goog.module语句4、格式5、语...翻译 2020-05-14 10:46:45 · 387 阅读 · 0 评论 -
[C++] 编程实践之1: Google的C++代码风格7:注释
7. 注释7.1 注释风格7.2 文件注释7.3 类注释7.4 函数注释7.5 变量注释7.6 实现注释7.7 标点,拼写和语法7.8 TODO注释7.9 弃用注释总结8. 格式8.1 行长度8.2 非ASCII字符8.3 空格还是制表位8.4 函数声明与定义8.5 La转载 2017-03-07 16:38:55 · 585 阅读 · 0 评论 -
[C++] 编程实践之1: Google的C++代码风格3:类
类 类是C++中代码的基本单元。显然它们被广泛使用。本节列举了在写一个类时的主要注意事项。构造函数的职责 不要在构造函数中进行复杂的初始化(尤其是那些有可能失败或者需要调用虚函数的初始化)。定义:在构造函数体中进行初始化操作。优点:排版方便,无需担心类是否已经初始化。缺点:构造函数中很难上报错误,不能使用异常。操作失败会造成对象初始化失败,进入不确定状态。如果在构造函数内调用了转载 2017-02-27 15:32:31 · 1352 阅读 · 0 评论 -
[C++] 编程实践之1: Google的C++代码风格9:规则特例
9. 规则特例前面说明的编程习惯基本都是强制性的,但所有优秀的规则都允许例外,这里就是探讨这些特例。9.1 现有不合规范的代码 对于现有不符合即定编程风格的代码可以网开一面。当你修改使用其它风格的代码时,为了与代码原有风格保持一致可以不使用本指南约定。如果不放心可以与代码原作者或者现在的负责人商讨。记住,一致性包括原有的一致性。9.2 Windows代码 Windows程序员有自己的编程习转载 2017-03-19 16:16:16 · 655 阅读 · 0 评论 -
[C++] 编程实践之1: Google的C++代码风格8:格式
8. 格式8.1 行长度8.2 非ASCII字符8.3 空格还是制表位8.4 函数声明与定义8.5 Lambda表达式8.6 函数调用8.7 列表初始化格式8.8 条件语句8.9 循环和开关选择语句8.10 指针和引用表达式8.11 布尔表达式8.12 函数返回值8.13 变量及数组初始化转载 2017-03-19 15:44:36 · 1580 阅读 · 0 评论 -
[C++] 编程实践之1: Google的C++代码风格2:作用域
2. 作用域2.1 名字空间 鼓励在.cc文件内使用匿名名字空间。使用具名的名字空间时,其名称可基于项目名或者相对路径。禁止使用using指示(using-directive)。禁止使用内联命名空间(inline namespace)。定义:名字空间将全局作用域细分为独立的,具名的作用域,可有效防止全局作用域的命名冲突。优点:虽然类已经提供了(可嵌套的)命名转载 2017-02-27 09:44:32 · 551 阅读 · 0 评论 -
[C++] 编程实践之1: Google的C++代码风格1:头文件
作为使用最为广泛的语言之一,C++也出现在众多开源项目中。为了有效管理C++丰富的语法所带来的复杂性和提高可读性,Google公司专门制定了C++代码风格建议。为了便于自己养成良好的编程习惯,同时为国内同行提供便利,我将原文内容以及对应的中文翻译做一个精简版的总结。1. 头文件 通常而言,每个.cc(.cpp)文件应该对应一个.h头文件,但也有例外,例如包含main()函数的文件。本小节转载 2017-02-27 09:39:04 · 566 阅读 · 0 评论 -
[C++] 编程实践之1: Google的C++代码风格6:命名约定
6. 命名约定6.1 通用命名规则6.2 文件命名6.3 类型命名6.4 变量命名6.5 常量命名6.6 函数命名6.7 名字空间命名6.8 枚举命名6.9 宏命名6.10 命名规则的特例总结7. 注释7.1 注释风格7.2 文件注释7.3 类注释7.4 函数注释转载 2017-03-04 15:46:29 · 1248 阅读 · 0 评论 -
[C++] 编程实践之1: Google的C++代码风格5:其它C++特性
其它C++特性引用参数 所有按引用传递的参数必须加上const。定义:在C语言中,如果函数需要修改变量的值,参数必须为指针,如int foo(int *pval)。在C++中,函数还可以声明引用参数:int foo(int &val)。优点:定义引用参数防止出现(*pval)++这样丑陋的代码。像拷贝构造函数这样的应用也是必需的,而且更明确,不接受NULL指针。缺点:容易引起误解,因转载 2017-03-03 10:15:30 · 932 阅读 · 0 评论 -
[C++] 基础知识之3、C++中的运算符
C++中的运算符运算符是一种告诉编译器执行特定的数学或者逻辑操作的符号。C++内置了丰富的运算符。和运算符相关的概念和知识也是C++编程语言中的重要组成部分。这里做一个初步总结。基本运算符主要分为如下五种类型的运算符。算术运算符包括加法运算符(+)、减法运算符(-)、乘法运算符(*)、除法运算符(/)、取模运算符(%)、自增运算符(++)和自减运算符(- -)。其中需要注意原创 2017-01-25 12:58:42 · 686 阅读 · 0 评论 -
[C++] 基础知识之1、C++和C的区别
C和C++的区别本文从设计哲学、语言特性和使用场景三个层面总结了C和C++的区别和联系,目的是通过对比加深对两种语言的理解。在整理过程中融合了网络上相关帖子的内容,在此表示感谢。设计哲学C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。用C来解决问题,总是将大的过程分解成小的阶段或者小的过程,原创 2017-01-19 15:54:12 · 905 阅读 · 1 评论 -
[C++] 基础知识之2、C++中的基本数据类型
C++中的基本数据类型和关键字虽然C++中的基本数据类型和关键字都很常用,但是如果熟视无睹,往往在编程实践中容易出错。这里总结出来,希望能够让自己和别人加深印象。基本数据类型C++标准规定的是每个算数类型的最小存储空间,但其并不阻止编译器用更大的存储空间。下面是大多数编译器所采用的存储空间。 类型 位 范围 void 0 bool 1原创 2017-01-22 13:36:31 · 605 阅读 · 1 评论 -
[C++] 编程实践之1: Google的C++代码风格4:来自Google的奇技
来自Google的奇技 Google用了很多自己实现的技巧/工具使C++代码更加简装,我们使用C++的方式可能和你在气他地方见到的有所不同。所有权与智能指针 动态分配出的对象最好有单一且固定的所有主(owner),且通过智能指针传递所有权(ownership)。定义:所有权是一种登记/管理动态内存和其它资源的技术。动态分配出的对象的所有主是一个对象或者函数,后者负责确保当前者无用时就自动销转载 2017-02-28 16:09:40 · 567 阅读 · 0 评论