`
hqs7636
  • 浏览: 220928 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表

枚 举 2.014

枚举声明: enum 枚举标记 枚举体 enum 枚举体 enum 枚举标记 :枚举基类型 枚举体 enum :枚举基类型 枚举体 枚举标记: 标识符 枚举基类型: 类型 枚举体: ; { 多个枚举成员 } 多个枚举成员: 单个枚举成员 单个枚举成员 , 单个枚举成员 , 多个枚举成员 单个枚举成员: 标识符 标识符 = 赋值表达式 Type Identifier = AssignExpression   2.014 枚举声明被用来定义一组常量。 定义形式有两种: 1. 命名枚举——它有一个枚举标记。 2. 匿名枚举——它没有枚举标记。 14.1 命名枚举 命名枚举常被用来声明 ...
7 嵌套函数 函数可以被嵌套在其它函数内部: int bar(int a) { int foo(int b) { int abc() { return 1; } return b + abc(); } return foo(a); } void test() { int i = bar(3); // i 被赋值为 4 } 嵌套函数只在其名字 处在作用域中 时才能被访问。 void foo() { void A() ...
[size=large]函数体: 块语句 语句体 In语句 语句体 Out语句 语句体 In语句 Out语句 语句体 Out语句 In语句 语句体 In语句: in 语句块 Out语句: out 语句块 out ( 标识符 ) 语句块 语句块: body 语句块 2.014 Pure Functions Pure functions ar ...
契约是减少大型项目成本的突破性技术。契约由先验条件、后验条件、错误和不变量等概念组成。契约可以加到 C++ 中而无需对语言加以改造,但是却十分笨拙且不一致。 在语言内部支持契约的 目的是: 给契约一个一致的观感 提供工具支持 使编译器能够根据从契约中收集的信息生成更好的代码 易于管理并强制实行契约 处理契约继承 契约的概念很简单——它只是必须为真的表达式。如若不然,契约就被违反,那么按照定 义,程序中就一定有 bug 。 契约构成了程序规格说明的一部分,只不过是从文档中挪到了代码中。就像每个程序员所知道的那样,文档通常是不完整的、过时的、错误的或者是不存在的。 将契约挪到代码中就使得契 ...

模板混入 2.014

(本章无版本差异) 一个 模板混入 指的是从一个 模版声明 的过程体内 提取一个任意的声明 集合,并将它们插 入到当前的上下文中。 模板混入: mixin 模板标识符 ; mixin 模板标识符 混入标识符 ; mixin 模板标识符 !(模板参数列表 ) ; mixin 模板标识符 !(模板参数列表 ) 混入标识符 ; 混入标识符: 标识符 模版混入 可以出现在模块、类、结构、联合的声明列表中,并且可以做为语句。模板标识 符 是一个 模版声明。如果 模版声明 没有参数,就可以使用不带 !(模版参数列表) 的混入 形式。 不像模板具现化,模板混入的过程体在混入 所在的作用域内 计算,而不 ...

模 板 2.014

我想我可以担保地说没什么人理解了模板机制。 -- Richard Deyman 模板(Templates)是 D 实现泛型编程(generic programming)的方法。模板通过 模板声明 进行定义: 模板声明: template 模板标识符 ( 模板参数列表 ) { 多个声明定义 } 模板标识符: 标识符 模板参数列表 模板参数 模板参数 , 模板参数列表 模板参数: 模板类型参数 模板值参数 模板别名参数 模板元组参数 TemplateThisParameter  (2.014) 无论模板是否被最终实例化,模板声明 的过程体 在语法上必须是正确的。语义分析延迟到 模板实例化 ...
尽管类是引用类型,而结构是值类型。任何 C 结构都可以被准确的表示为 D 结构。按照 C ++ 说法,D 结构是一种 POD (普通旧数据) 类型,且带有无关紧要的构造函数和析构函数。 结构和联合 用于表示简单的 数据聚集,或者用作这样一种方式——在硬件上 的描绘数据结构 或者描绘一种 外部类型。 外部类型 可以被 操作系统的 API 定义,或者被文件格式定义。面向对象功能 提供有 类数据类型。 一个结构被定义成不带身份标识;即是说,它的实现是自由的,可以很方便进行结构的 位复 制。                               结构、类比较表 =========== ...
[size=small] 1 数组类别 有四种数组(arrays): int* p;         指向数据的指针 int[3] s;          静态数组 int[ ] a;          动态数组 int[char[ ] ] x;     关联数组 1.1 指针(Pointers) int* p; 它们是简单的指向数据的指针,等价于 C 语言的指针。 这些指针的用于提供与 C 的接口,以及用于一些特定的系统工作。由于它没有相关联的长度特性,所以对于在编译或运行时进行越界检查这类工作就没有办法。 大多数传统的指针用法可以通过使用动态数组、out 和ref 参数以及引用 ...
单个声明: typedef 声明 alias 声明 声明 声明: 存储类别 声明 基本类型 多个声明符 ; 基本类型 单个声明符 函数体 自动声明 多个声明符: 声明符初始值 声明符初始值 , 声明符标志符列表 声明符初始值: 声明符 声明符 = 初始 ...
模块: 模块声明 多个声明定义 多个声明定义 多个声明定义: 单个声明定义 单个声明定义 多个声明定义 单个声明定义: 属性指示符 导入声明 枚举声明 类声明 接口声明 聚集声明 单个声明 构造函数 析构函数 不变量 单元测 ...
18 Synchronized 语句 synchronized 语句用来在多线程情况下同步临界区内的语句。 Synchronized语句: synchronized 作用域语句 synchronized ( 表达式 ) 作用域语句 synchronized 每次只允许一个线程 执行 作用域语句。 synchronized (表达式),其中的 表达式 会计算成一个 Object 引用,整个则同时只允许有一个线程在使用该 Object 来执行 作用域语句。如果 表达式 是 接口 的一个实例,则它会类型转换成一个 Object。 即使 作用域语句 由于异常、goto 或 return 被终 ...
7 If 语句 If 语句提供了按条件执行语句的方法。 If语句: if ( If条件 ) Then语句 if ( If条件 ) Then语句 else Else语句 If条件: 表达式 auto 标识符 = 表达式 单个声明符 = 表达式 Then语句: 作用域语句 Else语句: 作用域语句 表达式 将被计算,计算的结果必须可以被转换为布尔型。如果它为 true,则转换到 Then 语句,否则就转换到 Else语句。 “虚悬的(dangling) else”问题可以通过使用最近的那个 if 语句关联到该 else 来解决。 如果提供有一个 auto 标识符,那么它就会被 声明 ...

语 句 2.014

C 和 C++ 程序员会发现 D 中的语句很熟悉,另外还有一些有趣的扩充。 语句: ; 非空语句 作用域语句块 无作用域非空语句: 非空语句 块语句 无作用域语句: ; 非空语句 块语句 非空或无作用域语句块: 非空语句 作用域语句块 ...
以下“属性”都应改为“特性” 属性指示器: 属性 : 属性 声明定义块 属性: 连接属性 对齐属性 Pragma deprecated ProtectionAttribute static final override abstract const auto scope 单个声明块 单个声明定义 { } { 多个声明定义 } 属性指的是用来修改一个或多个声明的方法。一般的形式有: attribute declaration; 仅对该声明有效 attribute: 对所有声明都有效,直到 当前作用域的结尾 declaration; declaration; ... attribute    ...
无版本差异 21 基本表达式(Primary Expressions) 标识符 .标识符 this super null true false $ 数字字法 字符文字 多个字符串文字 数组字法 AssocArrayLiteral 函数字法 Assert表达式 Mixin表达式 Import表达式 基本类型 .标识符 typeid ( 类型 ) Is表达式 ...
Global site tag (gtag.js) - Google Analytics