D语言中的值类型,引用类型和函数传递方式

D语言和C#,java类似,是一门区分值类型和引用类型的语言。

概念和区分:

(注:没有找到权威的定义,维基百科没有,只有勉强链接到百度百科了)

  • 值类型:百度百科 , 说下个人理解:默认在栈中分配的,传递时默认(自定义赋值函数可以做其他实现)是占用的内存的copy的。
  • 引用类型:百度百科 ,说下个人理解:默认在堆中分配,使用的时候都是其引用,也就是其指针。所谓的赋值也就是引用(指针)更新。

Continue reading “D语言中的值类型,引用类型和函数传递方式”

D语言内存管理杂谈

D是一个系统级语言,但是也是一个GC语言(虽然现在GC在可选化,但是有的语言特性是基于GC的,例如:关联数组,数组连接等等)。D是GC语言,但不是全GC语言,D同时也提供了简单的手动管理内存的方式。所以下面我就分为GC,NoGC的方式来说。

Continue reading “D语言内存管理杂谈”