D语言游戏编程(2):D语言基础之Declarations,Types,Properties

D语言教程大全 什么是D语言 : C++复杂度的30% × C++功能的70% × Ruby开发效率的90% = DD语言介绍 关联数组 嵌套函数,函数文字量,动态闭包 自动化垃圾收集 内联汇编 契约式编程 单元测试 线程同步 与C的ABI兼容 更多的D语言介绍 http://bbs.d-programming-language-china.org/ 阅读详情
  首先需要熟悉一下D语言。D语言目前还没有什么书(有一本日文的,不知道小日本怎的对D这么热衷),所能参考的就是D语言的官方文档啦。不太适合编程的初学者,对于有一定变成经验的人来说,倒是挺合适的。英文原文从DMD官方网站可以找到: http://www.digitalmars.com/d/ ;中文翻译: http://blog.youkuaiyun.com/uframer/ 。

 下面的源码就是针对D语言文档中的没一节中的要点编写的,这是前面三节Declarations,Types,Properties中的主要概念,着重与C/C++不同的地方,并且加入了详细的中文注释。把下面的代码拷贝到一个文本文件中,主要,要存成unicode编码格式才能编译通过。

import std.stdio;  //  引入D语言的标准io库, 它是"dmdlibphobos.lib"的一部分; 库文件的查找由sc.ini中的LIB环境变量指定.

void  main()
{
    
try
    
{
        tryDeclarations();
        tryTypes();
        tryProperties();
    }

    
catch(Exception e)
    
{
        writefln(
"There is an error:");
    }

}


// 参考"dmdhtmlddeclaration.html"
void  tryDeclarations()
{
    
// D语言中的变量在会初始化为默认值
    int myInt;
    
uint myUint;
    
float myFloat;
    writefln(
"default of int = ",myInt,
         
", default of uint = ", myUint,
         
", default of float = ", myFloat);

    
// 声明是从右向左读的
    writef("This is an array : ");
    
int[4] myArray;
    
foreach(int i,int e;myArray)//如果下标越界,则会抛出一个Exception
        writef(i, " = ", e,", ");
    writefln();
    
    
//auto关键字
    auto myAuto = 99;
    writefln(
"this is an auto var, sizeof = ", myAuto.sizeof, 
                    
", value = ", myAuto);

    
    typedef 
int MYINT;     //typedef是强类型的
    alias int MYINITA;    //alias对于类型系统则与原来的类型相同
    
}


// 参考"dmdhtmld ype.html"
void  tryTypes()
{
    
//enum可以指定数据类型
    enum ETest : ubyte
    
{
        ET_One, ET_Two
    }


    
//使用cast关键字进行显示类型转换
    int a = -1;
    
uint b = cast(uint)a;
    writefln(
"b = ", b);

    
//function关键字用来声明函数指针
    void function(/*参数列表*/) myFunctionPtr;
    myFunctionPtr 
= &tryDeclarations;//指向一个函数
    writefln("myFunctionPtr = ", myFunctionPtr);

    
//delegate可以指向类的成员函数
}


// 参考dmdhtmldproperty.html
void  tryProperties()
{
    
//每种type都有相同的一些property
    writefln("float.sizeof = ", float.sizeof,
                     
", byte.init = ",byte.init,
                     
", int.max = ", int.max,
                     
", uint.max = ",uint.max);

    
//class和struct可以有property成员
    struct Foo
    
{
        
int data() { return m_data; }    // read property
    
        
int data(int value) { return m_data = value; } // write property
    
      
private:
        
int m_data;
    }

    
    Foo f;
  f.data 
= 3;        // same as f.data(3);
  f.data = f.data + 3;    // same as f.data() + 3;
    writefln("f.data = ",f.data);
}


 
Gemini 3.1 Pro 国内实战接入指南:API集成、SDK工程化与多模态排错 大模型API调用本质上是标准HTTPS REST服务,其核心挑战不在网络连通性,而在工程化集成——包括密钥安全分发、HTTP超时治理、Token计费逻辑、多模态内容结构校验及思考状态持久化。Gemini 3.1 Pro作为面向企业级AI应用的推理引擎,依托动态思考等级、精细媒体分辨率、思维签名(thoughtSignature)和原生工具组合四大能力,显著提升复杂工作流的可靠性与可运维性。本文聚焦国内开发者真实生产环境,覆盖从curl验证、google-genai SDK深度使用,到PDF图像处理、多轮Ag 阅读详情

相关推荐

Azure Document Intelligence + Phi-3 Mini 构建高可靠PDF结构化提取系统

PDF文档结构化提取是企业级AI应用的核心基础能力,其本质是将非结构化扫描件或电子PDF转化为可编程处理的JSON数据。技术原理上需协同OCR文本识别与语言模型语义理解:前者提供带空间坐标的原始文本,后者基于领域知识完成字段映射与上下文消歧。Phi-3 mini凭借128K长上下文、4GB低显存占用和多语言技术文档预训练优势,成为Azure云内轻量级推理的理想选择;而Document Intelligence则提供高精度布局分析与合规可控的数据处理边界。该组合在发票解析、医疗报告、报关单等场景中实现99.2

weixin_33834910的博客 459

探索D语言开发的新里程:DlangIDE

探索D语言开发的新里程:DlangIDE 是一个强大的、开源的集成开发环境(IDE),专为D编程语言设计。它利用了现代Web技术,提供了一个跨平台、高性能的代码编写和调试体验。通过该项目,开发者可以更高效地利用D语言进行软件开发,享受到优秀的代码补全、语法高亮、实时错误检测等功能。 技术剖析 DlangIDE的核心是基于Electron框架构建的,这使得它可以运行在Windows、macOS和Li...

gitblog_00100的博客 636

ClaudeCode逆向解析:用System Prompt构建工程级代码助手

代码助手的本质不是语言生成,而是工程问题求解——它需理解模糊性、依赖性与副作用等真实开发约束。其核心原理在于将大模型从被动应答者,转变为具备质疑能力、任务拆解逻辑和执行-反思闭环的轻量Agent。关键技术价值体现在提升复杂任务首次采纳率、降低环境适配成本、增强输出可审计性。典型应用场景包括遗留系统重构、需求文档转可运行脚本、Code Review风险识别及CI/CD自动化补全。本文基于对ClaudeCode的逆向分析,聚焦System Prompt结构化设计与Agent行为约束,揭示如何仅用文本指令激活模型

weixin_30314813的博客 526

解析d语言示例.

代码如下: import dparse.ast; import std.stdio, std.range; class TestVisitor : ASTVisitor { alias visit = ASTVisitor.visit; int indentLevel; override void visit(const FunctionDeclaration decl...

个人进步之路 1182

编译器源代码之:DMD(D语言)dmd.2.026

编译器源代码之:DMD(D语言)dmd.2.026。vc6编译通过

LD-31:游戏给予 31

LD-31 由 WebFreak001 用 D 语言编写的 Ludum Dare 31 游戏,使用 EncoXD 的修改版本

《玩转D语言系列》二、D语言现状、基本规定和相关资源介绍

  这算是本系列文章的一个序吧,主要是为以后的学习做铺垫,文本分为三个部分,第一部分是对于网上一些比较旧的资料的问题的一些更正,当然我也不可能看过所有的资料,难免会有遗漏。第二部分是D语言最基本的规定,第三部分是相关的资源 一、对于一些网上旧资料上的内容不准确之处在此指出 1、D对闭包的支持不好 目前版本支持完全的闭包,所以不用担心 2、D不支持动态链接 目前版本支持动态链接技...

weixin_30216561的博客 423

DiscordEngine:用 D 语言编写的开源游戏引擎

Discord 游戏引擎 用 D 编程语言编写的开源游戏引擎。 Discord 游戏引擎使用基于组件的系统和事件系统。 该发动机目前处于开发和设计的最早阶段。

Bard-API工具集成实战:让大语言模型调用Google服务执行复杂任务

大语言模型(LLM)的核心能力之一是理解和生成自然语言,但其知识受限于训练数据,无法获取实时信息或执行具体操作。工具调用(Tool Calling)机制通过让模型生成结构化请求来调用外部API,实现了从“生成文本”到“执行任务”的范式转变。这项技术极大地扩展了AI应用的能力边界,使其能够处理需要实时数据(如航班、地图信息)和具体操作(如搜索、预订)的复杂场景。在工程实践中,开发者通过定义清晰的工具描述和参数,将LLM的通用语言理解与专用API的精准能力相结合,从而构建出智能旅行规划助手、实时信息查询系统等高

蓝色妖姬 377

把MinerU集成到Dify

本文介绍了如何将本地部署的MinerU与Dify平台进行集成。首先需要确保Dify和MinerU在Docker环境中正常运行,并通过配置虚拟网络实现互联。然后详细说明了在Dify平台安装MinerU插件的步骤,包括从插件市场搜索安装、配置连接参数等关键操作。特别强调了要等待MinerU容器完全启动(healthy状态)后再进行Dify配置,否则会出现连接错误。通过简单的URL指向和API密钥设置,用户即可实现Dify平台与本地MinerU算力网络的对接,为后续的AI应用开发提供基础支持。

lyxerlau的博客 313

微信小程序协同工作和发布

微信小程序协同工作和发布

qq_53114527的博客 1620

ABAP获取用户登录详细信息并已邮件附件的形式发送给你

老外写的这段代码,从逻辑上看,我没看出问题,但是运行后不见发送邮件出来,请有空的前辈调试解决下,这段代码可以作为新人学习ABAP的一个典型DEMO。 This is a Sample Code for fetching the User Login Details and sending it as an XLS attachment to an Email using the XML meth

兔宝学习ABAP整理笔记 3585

雷达气象学(8)——反射率因子图实战(强对流预警篇)

本文聚焦雷达反射率因子图在强对流预警中的实战应用,深入解析了柱状回波、有界弱回波区(BWER)、三体散射(TBSS)等关键回波结构特征,这些是识别超级单体风暴和大冰雹的核心“身份证”。文章强调从静态识别转向动态追踪与多源数据综合研判的思维转变,并提供了系统的实战分析流程与常见误区避坑指南,旨在提升对强对流天气的短临预警能力。

weixin_29213827的博客 485

Google Gemini Agent开发实战:从协议解析到多工具协同

AI Agent 是大模型落地的核心范式,其本质是通过函数调用(Function Calling)实现模型与外部能力的动态协同。理解 Gemini 的 tool use 协议、functionResponse 语义及 stateful session 机制,是构建可靠自主体的基础前提。本文聚焦 Google Agent 技术栈底层原理,深入解析 function_call 响应结构、history 状态管理、参数 Schema 校验与错误恢复策略,覆盖多轮对话、多工具编排、防抖限流等工程关键点,适用于需绕过

weixin_36250534的博客 438

python画弗里德曼(Friedman) 检验和秩和检验(Nemenyi)检验图

python画弗里德曼(Friedman) 检验和秩和检验(Nemenyi)检验图 画好后效果图 实现代码如下 import matplotlib.pyplot as plt #算法平均排名 _alg_=[1.405,2.643,2.786,2.167] y=[1,2,3,4]#alg1,alg2,alg3,alg4 通过Nemenyi测试计算得到的临界值CD CD=1.024 h_CD=CD/2 plt.figure(figsize=(10,6)) plt.scatter(_alg_,y,s=10

大模型天花板 4464

01 AUTOSAR CP标准文档阅读指南

01 AUTOSAR CP标准文档阅读指南

汽车软件工程师 | 好奇博主 | 处女座 1134

Gemini 3.0 Pro工程化落地:API级多模态推理与结构化集成实战

大语言模型(LLM)已从网页交互迈入API驱动的工程化阶段。理解其底层推理机制、上下文管理逻辑与多模态输入处理原理,是构建可审计、可复现、可嵌入业务系统的前提。Gemini 3.0 Pro凭借强化的语义锚定能力、动态上下文窗口调控及原生工具调用支持,显著提升了长文档解析、跨系统协同与结构化输出的稳定性。本文聚焦真实产线故障诊断与B端需求拆解两大场景,详解如何通过预处理过滤、模态路由、response_schema约束、cached_content复用等关键技术,将模型能力转化为低延迟、高确定性、易运维的AI

weixin_33724659的博客 487

OpenClaw进阶实战(二十五):抖音企业号——私信回复与视频评论分析

摘要:本文介绍抖音企业号自动化运营方案,突破抖音强风控体系的技术挑战。针对内容生产、私信互动和账号矩阵三大场景,提出混合架构解决方案: 私信自动化:结合关键词触发与随机延迟(45秒±15),实现拟人化回复,支持价格咨询/商务合作等高优先级消息识别 混合技术栈:官方API(合规)+真机RPA(覆盖长尾需求)+AI辅助生成(脚本→剪辑→发布闭环) 安全策略:通过设备指纹模拟、行为间隔随机化和内容差异化处理规避风控,提供每日200条的安全操作阈值。配套OpenClaw技能实现一键部署,包含cookie配置、回复规

PeterPan的博客 143

Gemini 3.5 Flash:实时代理架构如何重写AI响应范式

大语言模型的‘低延迟’已从单纯推理加速,演进为面向人机协同的系统级重构。其核心在于将模型推理、工具调度、多模态解码与内存管理深度耦合,实现毫秒级响应闭环——这正是‘Flash’所代表的工程本质:类闪存芯片的随机访问能力与零拷贝流水线。该范式突破传统HTTP API调用瓶颈,支撑实时交互、自动代理与上下文感知等关键能力,广泛应用于知识工作流自动化、AI原生应用开发及教育沙盒环境。Gemini 3.5 Flash正是这一技术跃迁的典型代表,标志着AI服务正从‘按需唤醒’迈向‘始终在线’。

weixin_33720078的博客 419

Java全栈:电影数据检索与推荐系统实战

全文检索个性化推荐数据缓存容器化部署通过这个项目,我们不仅实践了Java全栈开发的各项技术,还接触了推荐系统的核心算法实现。用户历史行为数据物品特征数据上下文信息实时反馈算法的准确性推荐的多样性系统的实时性冷启动问题性能优化效果评估VIEW, // 浏览CLICK, // 点击SEARCH, // 搜索RATE, // 评分COMMENT, // 评论SHARE, // 分享WATCH_TIME, // 观看时长。

exlink2012的专栏 891

基于Python的农业市场价格抓取与供需分析:现代爬虫技术与实战应用

在正式开始爬虫开发之前,我们首先了解爬虫的基本概念和工作原理。爬虫(Web Scraping)是通过编程的方式,自动从互联网上获取信息的技术。它可以帮助我们提取HTML页面中的特定数据,通常用于收集并处理大量信息。发送HTTP请求:爬虫需要向目标网站发送请求,获取网站的HTML页面内容。解析HTML页面:通过HTML解析器对获取的页面内容进行解析,提取其中需要的数据。数据清洗与存储:将提取的数据进行清洗,去除多余的字符或无关内容,然后存储到合适的格式(如CSV文件、数据库等)中。数据分析与可视化。

2201_76125261的博客 1117

【java】【OOP】【xjtuse】面向对象程序设计 ppt翻译版

来背期末八股文啦!快来看全英ppt直翻!由于不够系统请配合下一篇一起食用。 什么是java?什么是oop?什么是JVM?java的执行模型?封装?多态?继承?运算符优先级?保留字有哪些?方法重载和方法重写有什么区别?四个访问修饰符的作用都是什么?this和super怎么用?字面量是什么?“is-a”“has-a”?字符串怎么拼接?字符串缓冲区怎么用?接口和抽象类的区别?

Genevieve_xiao的博客 1373

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Gemini 3.1 Pro 实操避坑指南:API 调用、temperature 锁死与 system_instruction 替代方案

大语言模型 API 调用已从参数调优进入结构化协议阶段。Gemini 3.1 Pro 不再支持传统 temperature 调节和 system_instruction 设置,其核心能力依赖于严格的请求结构(如 contents 数组组织)、推理状态锚定(thoughtSignature)与媒体分辨率控制(media_resolution)。该模型本质是上下文感知的推理引擎,技术价值在于多步验证链、函数调用闭环与结构化输出(response_format),适用于金融分析、智能客服、多模态文档理解等生产场景

weixin_30540691的博客 601

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Gemini 3.5 Flash:AI推理成本与延迟的工程级重构

大模型推理成本高、延迟大,长期制约AI在实时交互、边缘部署和高并发场景的落地。其本质是传统‘黑箱式’模型与基础设施脱节所致——算力未按任务需求动态分配,工具链割裂导致隐性开销堆积。Gemini 3.5 Flash通过硬件感知编译、动态计算图剪枝与原生工具路由,将推理成本压至0.4美元/百万token、端到端延迟降至280毫秒,首次实现‘按效果付费’的范式转移。它不是更强的通用模型,而是面向工具驱动型任务(tool-driven tasks)深度优化的效率标尺,在文档理解、多跳检索、代码辅助等高频企业场景中展

weixin_30388677的博客 470

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

在 HarmonyOS/鸿蒙PC ArkTS 侧调用 C/C++ 三方库完整指南

本文介绍了在鸿蒙应用开发中集成C/C++三方库的完整流程,以libmediainfo为例,重点讲解了如何通过NAPI机制实现ArkTS与C/C++的交互。文章对比了直接链接和dlopen动态加载两种集成方式,推荐使用直接链接方法,并详细说明了项目结构设计、SO文件放置、头文件管理和NAPI桥接层的实现。通过编写C++包装代码,将三方库的C接口转换为ArkTS可调用的NAPI接口,最终实现在鸿蒙应用中调用libmediainfo库解析媒体文件信息的功能。

猫哥 的沉淀、积累、总结。天天学习,好好向上...c/c++,嵌入式 linux,Android,HarmonyOS,AIOT) 988

C++跨平台开发:WSL与Windows环境下的函数重载与模板实战解析

C++作为高性能系统编程的核心语言,其跨平台开发能力是构建可移植软件的关键。理解编译器工作原理、ABI(应用程序二进制接口)差异和标准库实现细节,是确保代码在不同操作系统间一致运行的基础。这些技术知识能显著提升软件的可维护性和部署灵活性,广泛应用于嵌入式系统、服务器后端和高性能计算等领域。本文聚焦于C++开发中的常见挑战——函数重载和函数模板,深入分析它们在Windows原生环境与WSL(Windows Subsystem for Linux)下的不同表现。通过解析名称修饰规则、模板实例化机制和标准库实现的

weixin_34062469的博客 399
上一篇: D语言游戏编程(1):工作环境
下一篇: D语言游戏编程(3):D语言基础之Attributes
yanonsoftware
博客等级 码龄21年 104粉丝 67原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值