我是靠谱客的博主 热心奇异果,这篇文章主要介绍ddip1043短方法语法概述原理(一致/简洁),现在分享给大家,希望可以做个参考。

原文

概述

DIP为函数定义提出了短语法.新语法使用=>分隔函数头和函数体来代替左大括号和右大括号:

复制代码
1
2
int add(int x, int y) pure => x + y;

已在D语言中作为预览实现

原理(一致/简洁)

D语言已支持函数字面的短语法.如:

复制代码
1
2
3
4
const succ = (int x) => x + 1; //等价 const succ = function(int x) { return x + 1; };

细微的更改语言,可为函数定义实现类似语法,使函数字面和函数定义更加统一.

考虑简单InputRange,它产生一系列T不包括一端([from,to))s.无建议语法的D中的实现是14行:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct LongerExclusiveRange(T) { T from, to; invariant(from <= to); bool empty() { return from == to; } void popFront() { ++from; } T front() { return from; } }

提议特性实现只有8行:

复制代码
1
2
3
4
5
6
7
8
9
struct ExclusiveRange(T) { T from, to; invariant(from <= to); bool empty() => from == to; auto popFront() => ++from; T front() => from; }

用该语法简化函数为动作.
这样,可以带任意但具有代表性的区间组合.

复制代码
1
2
3
4
5
6
auto doesWork() => iota(1, 100) .map!(x => x + 1) .filter!(x => x > 4) .each!writeln;

由于构造器和析构器不能有返回值,实现应拒绝使用短语法实现他们,并提供有意义的错误消息.

最后

以上就是热心奇异果最近收集整理的关于ddip1043短方法语法概述原理(一致/简洁)的全部内容,更多相关ddip1043短方法语法概述原理(一致/简洁)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(81)

评论列表共有 0 条评论

立即
投稿
返回
顶部