dlang入门
13 Jan 2019
|
|
我本身有啥语言都会点,所以这门语言我会用其他语言的特性来描述,请谨慎阅读
安装
curl https://dlang.org/install.sh | bash -s
基本的工具 dmd编译,rdmd可以当成shell脚本使用#!/usr/bin/env rdmd
包管理工具dub
包引用语法 import std.stdio : writeln, writefln;
基本上大同小异
基本概念
-
类型,完全等同于c/c++但是存在构造函数
.init
- 每个类型有各种属性,
.max
.nan
等等,构造函数也是一种属性,.stringof
返回自身名字。感觉这很反射,python也有__repr__
- auto 同,typeof也类似,immutable等同于const
- 内存管理,内嵌GC,三种内存模式
@system
默认@safe
检查内存安全@trusted
三方api互通有点像rust的unsafe
- 每个类型有各种属性,
- 控制流,完全一致,有个foreach相当于range-for
- 函数,完全一致,支持函数内函数,以及返回auto
- 结构体/类,this函数就是构造函数,private修饰成员函数,override修饰
- interface接口以及工厂模式
- 数组,支持slice,类似go,map就是特殊的数组 int[string] arr;
- 模版,完全就是go那个德行
auto add(T)(T lhs, T rhs) {
return lhs + rhs;
}
struct S(T) {
// ...
}
大概就这么多
ref
- https://tour.dlang.org/tour/en/basics/functions
- 魔鬼细节 http://dpldocs.info/this-week-in-d/Blog.Posted_2021_02_15.html