- 浏览: 221058 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
dysking:
SWT 和 JFace -
wangyuhfut:
东西不少啊。学习中。。。
一个比较好、中文说明的emacs配置文件 1 -
pacocai:
呵呵!学习,学习~~~不过要说编辑器的话个人更喜欢用VIM,比 ...
一个比较好、中文说明的emacs配置文件 1 -
zhf1zhf2:
这两百多个记起来也不容易啊
英国人是这样背的! -
regex:
试了两次,都是乱码,版本是23.1.1,看来不适合
汉化 Emacs 菜单
6/21更新
5/16更新
dmd2.0分类下的文章都将作为技术累积出现,既方便自己也方便大家检索,所以以后不会写各种类似的小文章,欢迎大家随时提供各种经验和技巧,我都将及时更新,并公示贡献人。
希望两三年后这里的文章能集成一本很好的入门书籍共大家下载。
各类文章如有更新都会在文章的最开始处标示更新日期,以方便大家辨认,内容上将尽量保持两次更新并以不同颜色显示,以方便大家阅读最新内容。
2.013中共103个
未来一些技巧性用法将索引到这里,免得书上到处找。
5/16更新
dmd2.0分类下的文章都将作为技术累积出现,既方便自己也方便大家检索,所以以后不会写各种类似的小文章,欢迎大家随时提供各种经验和技巧,我都将及时更新,并公示贡献人。
希望两三年后这里的文章能集成一本很好的入门书籍共大家下载。
各类文章如有更新都会在文章的最开始处标示更新日期,以方便大家辨认,内容上将尽量保持两次更新并以不同颜色显示,以方便大家阅读最新内容。
2.013中共103个
未来一些技巧性用法将索引到这里,免得书上到处找。
abstract 不能被直接实例化。它只能被当作另一个非抽象类的基类进行实例化。 类被定义时,内部有一个抽象属性(abstract attribute),或者在它内部的某些虚成员函数被声明成抽象的,那么这个类就是抽象的。 非虚函数不能被声明成抽象的。 函数声明成抽象的仍然可以拥有函数体。这就是为什么即使它们必须被重写(override),仍然能够提供“基类功能。” alias 别名 (尽量别用) 1、 类型别名 别名类型在语义上等价于原类型。 2、别名声明 符号可以被声明为另一个符号的“别名”。例如: import string; alias string.strlen mylen; ... int len = mylen("hello"); // 实际上调用的是 string.strlen() 3、别名可以用来从模块中‘导入’一个符号到当前作用域: alias string.strlen strlen; 4、别名不能用于表达式: 5、类型别名有时会同别名声明十分相似: alias foo.bar abc; // 它是一个类型还是一个符号? 在语义分析是将会区分这两种情况。 align对齐属性:??? align ( Integer ) 指定结构成员如何对齐。“对齐属性”用于兼容 C ABI asm assert auto 属性 用于局部变量和类声明。 body bool break byte case cast属性: 类型转换,除此还可用于类的实例判断: if (cast(B) o) // o 是 B 的一个实例 else //o 不是 B 的一个实例 5/16 catch cdouble cent cfloat char class const: 声明可以在编译时进行求值的常量。 没有初始值的 const 声明在构造函数里(对于类字段)或者在静态构造函数里(对于静态类成员或模块变量声明)必须被初始化。(1.0文档) continue creal dchar debug default delegate delete deprecated 废弃属性 保持向后兼容。这类声明可以被标记为废弃,可以通过设置编译器选项,在遇到引用这类声明的代码时产生错误: do double else enum export(导出属性) 表示可执行程序外的任何代码都可以访问这个成员。导出的意思也就是从DLL 中导 出定义。 extern连接属性(Linkage Attribute) extern ( 连接类型 ) D 提供了一种方便的调用 C 函数和操作系统 API 函数的方法。 extern (C): int foo(); // 使用 C 协定调用 foo() 对于c,常见的有: (Colorful 贡献) stdcall 对应 extern (Windows): cdecl(默认) 对应 extern (C): fastcall 无 thiscall 。。 naked call 。。 本质上指的就是函数参数压栈顺序。 Windows API 调用约定是: extern (Windows): void *VirtualAlloc ( 。。。 ); 带有存储类别 extern 的变量声明不会在该模块里分配存储空间。它们在其它某个目标文件 里被定义,而且要求跟要连接的名称相匹配。它的基本用法就是用于连接在 C 文件里定义 的全局变量。 false final finally float for foreach foreach_reverse function goto idouble if ifloat import 导入,默认情况下,导入是“private(私有的)”,另外还有“public,static,更名导入import io = std.stdio;选择性导入import std.stdio : writefln, foo = writef;更名带选择性的导入import io = std.stdio : foo = writefln; 导入声明中的循环(循环依赖)是允许的,只要不是两个模块都含有静态构造或析构函数就行。如果违反这条规则会在运行时产生异常。 in inout int interface invariant ireal is lazy long macro mixin声明: mixin ( 赋值表达式 ) ; 赋值表达式 必须在编译时求值成一个常量字符串。该字符串的文本内容必须要可编译成一个有效的多个声明定义,而且同样地被编译。 module 模块同源文件是一一对应的。模块名就是去掉路径和扩展名的文件名。 模块自动为它的内容提供一个名字空间。模块跟类有一点相像,不同之处是: • 每个模块只有一个实例,并且它是静态分配的。 • 模块没有虚函数表。 • 模块不能继承,它们没有父模块,等等。 • 每个文件只有一个模块。 • 模块的符号可以导入。 • 模块总是在全局作用域内编译,并且不受周围的特征或其它修饰符影响。 多个模块可以组织成一个结构,叫做“包(packages)”。 new nothrow 2.0 null out override 用于虚函数。即表示该函数一定会重写 package pragma private protected public pure 2.0 real ref return : 在函数实际返回之前,任何带有 auto 存储特性的对象都会被破坏掉,所有的封闭 finally 子句会被执行,所有的 scope(exit) 语句会被执行,所有的 scope(success) 语句会被执行,并且所有的封闭 synchronization 对象会被释放。 scope ????? 用于局部变量和类声明。对于类声明,scope 属性会创建一个 scope 类。对于局部变 量,scope 实现RAII(资源获得即初始化)协议。即表示对象的析构函数自动被调用。 作用域守护语句:(参见书p92) scope(exit) 非空或无作用域块语句 scope(success) 非空或无作用域块语句 scope(failure) 非空或无作用域块语句 作用域守护语句 在当前作用域的结束处执行 非空或无作用域块语句,而不是在 作用域守 护语句 所在的那个地方执行。scope(exit) 会在正常退出该作用域时或在由于异常展开而退 出时执行 非空或无作用域块语句。scope(failure) 会在由于异常展开退出该作用域时执行 非空或无作用域块语句。scope(success) 则会在正常退出该作用域时执行 非空或无作用域块 语句。 如果在一个作用域内有多重 作用域守护语句,那么它们执行的顺序则跟它们在词法上出现 的顺序相反。如果有 auto 实例在访作用域结束处被析构,那么它们也以跟词法上相反的顺 序跟 作用域守护语句 交叉在一起。 scope(exit) 或 scope(success) 语句不可能由于 throw、goto、break、continue 或 return 退出;也不可能由于 goto 而进入。 short static 用于函数和数据,静态函数决不能是虚的(vitual)。 struct super switch synchronized template this throw true try 隐式类型接口 自动声明: 多个存储类别 标识符 = 赋值表达式 ; 如果一个声明由“存储类别”起始,并且有“非空初始值”(由这可以推断类型),则在声 明里的类型可以被忽略。 static x = 3; // x 的类型是 int auto y = 4u; // y 的类型是 uint auto s = "string"; // s 是类型 char[6] class C { ... } auto c = new C(); // c 是类 C 实例的手柄 “非空初始值”不能包含向前引用(在将来这个限制可能被移除)。隐式推断的类型是在编 译时,而在非运行时静态绑定到该声明。 typedef 类型定义 强类型可以通过 typedef 引入。对于函数重载和调试器来说,在语义上,强类型是类型检查系统可以将其同其他类型区分的类型。 typedef int myint; void foo(int x) { . } void foo(myint m) { . } . myint b; foo(b); // 调用 foo(myint) Typedef 可以指定一个不同于其底层类型(underlying type)的初始值: typedef int myint = 7; myint m; // 初始化为 7 typedef T U; // T 就是 U 的 基类型 typeid typeof typeof ( 表达式 ) typeof ( return ) Typeof 用来获得一个表达式的类型。例如: void func(int i) { typeof(i) j; // j 的类型是 int typeof(3 + 6.0) x; // x 是 double 型 typeof(1)* p; // p 是指向 int 型的指针 int[typeof(p)] a; // a 的类型是 int[int*] writefln("%d", typeof('c').sizeof); // 输出 1 double c = cast(typeof(1.0))j; // 将 j 转换为 double 型 } 表达式 不会被计算,只会生成它的类型: void func() { int i = 1; typeof(++i) j; // j 被声明为 int ,i 不会自增 writefln("%d", i); // 输出 1 } 有两种特殊情况: 1. 就算不在成员函数中,typeof(this) 也将生成 this 在非静态成员函数中的类型。 2. 类似的,typeof(super) 也将生成 super 在非静态成员函数中的类型。 class A { } class B : A { typeof(this) x; // x 被声明为 B 型 typeof(super) y; // y 被声明为 A 型 } struct C { typeof(this) z; // z 被声明为 C* 型 typeof(super) q; // 错误,C 没有父结构 } typeof(this) r; // 错误,没有包含在类或者结构中 ******* Typeof 是最有用的的地方就是在于编写泛型模板代码。 ubyte ucent uint ulong union unittest ushort version void Void 初始化 VoidInitializer: void 通常,变量初始化可以使用一个显式的 初始值,也可以设置成变量类型的默认值。 如果 初始化值 为 void,实际上变量并没有被初始化。如果它的值在被设置前使用了,则会导致未定义的程序行为。 void foo() { int x = void; writefln(x); // 会输出“垃圾”信息 } 因此,我们应该只使用 void 初始值,做为在优化关键代码时的最后的手段。 volatile:没有什么代码活动能跨越 volatile 语句的边界。 volatile 语句 volatile ; 语句 会被计算。在 语句 之前的所有内存写操作都保证在 语句 中或其后的内存读 操作之前完成。在 语句 之后的所有内存读操作都保证在 语句 中或其前的所有内存写完成之后执行。 volatile 语句不能保证原子性。为了该目的,应该使用 synchronized 语句。 wchar while with __FILE__ 2.0 __LINE__ 2.0 __traits 2.0
发表评论
-
土耳其文《d编程》range 翻译 一
2011-11-15 02:01 1507Ranges 范围 Ranges are an abstra ... -
土耳其文《d编程》range 翻译 二
2011-11-15 01:59 1006As you can see, that output doe ... -
d2 range 和 标准C++中的Iterator(迭代器)简介
2011-05-07 12:59 2117原文: http://hi.baidu.com/c ... -
三访安德烈Alexandrescu(第2部)
2010-08-20 12:53 1422Google翻译哦 面试------> 应翻成 访谈 ... -
三访安德烈Alexandrescu(第一部分)
2010-08-20 12:43 1349google翻译哦 Interview with Andre ... -
Garden Editor project 日记 之二 10.16 ---
2009-10-16 02:39 02009.10.16 T[new] misgivings ... -
Garden Editor project 日记 之一 09.09.25 --- 10.15
2009-09-24 22:56 0kill two birds with one stone, ... -
template metaprogramming 9
2009-09-09 16:08 1170原文:https://docs.google.co ... -
Floating Point in D (2.030 新)
2009-05-12 23:27 20485.17 23:50 更新 5.16 20:30 翻译更 ... -
Migrating to Shared (2.030 新)
2009-05-12 23:03 11545.19 0:10 更新(完成) ... -
D 2.0 的gc
2008-12-04 19:53 1251http://lucifer1982.wordpress.co ... -
垃圾回收 2.014
2008-06-10 07:20 984无版本差异 D 是一种全面采用垃圾回收(Garbage Co ... -
类 class 2.014
2008-06-09 22:51 1085D 的面向对象的特性都来源于类。类层次里的顶层是 Object ... -
接 口 2.014
2008-06-09 22:51 844接口声明: interface 标 ... -
C 语言接口 2.014
2008-06-09 22:50 1029D 的设计就是要在目标系统上能够很好地符合于 C 编译器。D ... -
Traits 特征 2.014
2008-06-07 11:25 12466.14 翻译 (d语言的反 ... -
常量和不变量 Const and Invariant 2.014
2008-06-07 11:22 1312请参考: D 2.0 Const/Final/Invarian ... -
词法 2.014
2008-06-07 10:22 1501在 D 中,词法分析独立于语法分析和语义分析。词法分析器是将源 ... -
枚 举 2.014
2008-06-07 08:41 1155枚举声明: enum 枚举标记 枚举体 enum 枚举体 en ... -
函 数 2 (2.014)
2008-06-07 08:22 10327 嵌套函数 函数可以被 ...
相关推荐
LS-DYNA关键字说明 LS-DYNA是 Livermore Software Technology(LST)公司开发的一款有限元分析软件,主要用于模拟和分析结构、热、流体、冲击、爆炸等领域的动力学行为。该软件广泛应用于汽车、航空航天、国防、...
例如,`MESH`关键字用于定义几何模型,`MAT`系列关键字用于定义材料特性,`LOAD`关键字用于施加外部载荷,`BC`关键字用于设定边界条件等。 3. **材料模型**:LS-DYNA支持多种复杂的材料模型,如弹性、塑性、粘塑性...
IAR的一些扩展关键字 在深入探讨IAR Systems的嵌入式开发工具中,特别是针对C51编程语言的环境,了解其扩展关键字对于优化代码、提高程序效率以及更好地利用硬件资源至关重要。这些关键字超越了标准C语言的范畴,...
在本篇文章中,我们将深入探讨C语言中的关键字及其用法。C语言作为一种广泛使用的编程语言,在软件开发领域占据着极其重要的地位。理解并熟练掌握C语言的关键字是学习该语言的基础,也是成为一名合格程序员的...
它的语法简洁而强大,包含了一系列的关键字,这些关键字是C语言的核心组成部分,用于定义程序的结构和控制流程。本项目聚焦于“统计C语言关键字频度”,旨在帮助开发者理解和分析C语言源代码中的关键字使用情况。 ...
然而,原始的`RichTextBox`控件并不支持自定义关键字高亮,即无法自动将特定的关键字变色。为了实现这一功能,开发者通常需要借助一些额外的编程技巧或第三方库。本文将详细介绍如何利用`RichTextBox`控件结合XML...
### 关键字驱动测试框架的研究 #### 摘要与背景 随着软件开发周期的加快以及市场需求的变化,软件测试已成为确保软件质量不可或缺的一部分。在这一背景下,自动化测试因其能够提高测试效率、降低人工成本的优势而...
在Unix系统中,搜索含有特定关键字的文件是一项基础但至关重要的任务。这使得用户能够快速定位到包含所需信息的文件,提高工作效率。Unix提供了一系列强大的命令行工具来帮助用户完成这项工作,其中最常用的是`grep`...
在计算机科学和编程领域,多关键字排序是一种处理数据集合的重要技术,它允许我们根据不止一个属性或关键字对数据进行排序。这种排序方法广泛应用于数据库、数据分析、信息检索等多个场景,帮助用户更有效地查找和...
本篇文章将深入探讨如何使用iText库在Java中实现PDF关键字定位。iText是一个强大的PDF处理库,它提供了丰富的API来创建、编辑和读取PDF文档。 首先,我们需要在项目中引入iText库。你提到的`itextpdf-5.5.6.jar`是...
- **关键词匹配**:接着,程序会将输入的关键字与提取的文本进行比较,找出包含关键字的文件。 - **排序与过滤**:如果多个文件包含同一关键字,可以根据关键字出现的频率对结果进行排序;同时,可以设置过滤条件...
SQL关键字是编写查询、更新、删除和管理数据库结构的基础,它们有着严格的语法规定,其中大小写的规范就是其中之一。在某些情况下,为了代码的可读性和一致性,我们可能需要将SQL语句中的关键字转换为大写。针对这一...
这个功能的主要目标是在网页上显示一段文本,并允许用户输入关键词进行搜索,搜索到的关键字将在文本中以红色加粗的方式突出显示。 首先,我们需要搭建开发环境。在这个例子中,我们使用的环境是Windows 7操作系统...
在Java编程语言中,关键字是预定义的、具有特殊含义的词汇,它们是构成程序语法结构的基础元素。这篇关于“源码关键字统计”的主题旨在分析Java源代码文件,并计算其中出现的关键字数量。这个任务涉及到文件读取、...
本文将深入探讨ABAP的关键字查询帮助,为初学者提供一个清晰的入门指南。 首先,理解ABAP的基本语法是至关重要的。ABAP的语法结构与许多其他编程语言相似,例如C或PASCAL,但它具有自己独特的特性。在ABAP中,...
标识符、关键字、常量、变量、运算符在编程语言中的应用 在编程语言中,标识符、关键字、常量、变量、运算符都是基本的概念,它们在编程语言的设计和实现中扮演着非常重要的角色。 一、标识符 标识符是指在编程...
《批量搜索Word关键字程序V1.4版:高效查找与数据整理工具》 批量搜索Word关键字的程序V1.4版是一款专为IT从业人员和研究人员设计的实用工具,旨在提高工作效率,快速定位文档中的关键信息。它允许用户指定一个特定...
这些字段可以是数值型、字符串型或者其他类型,排序时通常按照优先级顺序进行,即第一个关键字优先,当第一个关键字相同时,再比较第二个关键字,以此类推。 二、常见的多关键字排序算法 1. **直接选择排序**:首先...
标题《LS-DYNA关键字手册》透露了文档的核心内容,即介绍和解释LS-DYNA软件中使用的关键字(keywords)的具体作用。关键字是LS-DYNA这款用于有限元分析(Finite Element Analysis, FEA)以及多体动力学仿真(Multi-...
### C++关键字详解 在C++编程语言中,关键字具有特定的语法意义,它们由编译器识别并赋予特殊含义。下面将详细介绍一系列C++的关键字及其用途。 #### asm(汇编指令) - **功能**:`asm`关键字用于嵌入汇编代码到...