Dyalect

Dyalect是一款编程语言,您可以将其添加到.NET Core使用,可以在软件上快速编辑相关的代码项目,支持复杂类型元组、数组、地图、迭代器、范围、模式匹配、异常处理、模组、整数、布尔等功能,让用户可以通过这款软件构建新的程序,您可以在软件上添加异常处理功能,可以使用任何数据类型作为异常对象,例如,您可以抛出诸如元组,数组等的复合值,Dy使用特殊的Err数据类型来表示所有异常,此类型具有多个构造函数,用于表示不同类型的错误,您也可以使用构造函数创建地图,提供的编辑功能还是非常丰富的

相关推荐 软件介绍 下载地址
Dyalect官方版v0.20.2 Dyalec是一款编程语言,您可以将其添加到.NETCe使用,可以在软件上快速编辑相关的代码项目,支持复杂类型元组、数组、地图、迭代器、范围、模式匹配、异常处理、模组、整数、布尔等功能,让用户可以通过这款软件构建新的程序,您可以在软件上添加异常处理功能,… 点击查看
Avue前端框架官方版v2.7.5 Avue是一款前端开发框架,如果你需要开发前端程序就可以下载这款软件,软件提供单组件、表单组件、表格组件、数据展示、其他组件、移动端组件,您可以通过不同的组件设计前端内容,直接在软件部署应用程序属,设置web界面属,支持数字属、图标属、地图属、无线电属… 点击查看
在开发过程中轻松地在本地测试您的应用程序有两种可以在本地运行的测试套件:u:deess/legacy-cli/u_e2e.jsIDE特定用法在特定IDE中进行开发的一些其他技巧。… 点击查看

Dyalect软件功能

Dyalect是用于.NET Core平台的动态编程语言。它轻巧,快速,现代。Dyalect(或简称Dy)是用C#编写的,除了标准的.NET Core库外,它们的依赖项为零,这意味着它可以在Windows,MacOS和Linux上无缝运行。此外,您可以在任何这些平台上使用相同的二进制文件!

Dy不使用DLR,也不编译为IL(.NET程序集)。相反,它在自己的高能虚拟机之上运行。它编译速度快,可以用作嵌入式语言或您选择的脚本语言。它也是学习编程的好语言。

Dyalect提供了现代语法,其灵感来自于C#,Swift,Go和Rust等语言,一流的函数,协程,表达模块,动态类型系统,该系统具有使用新功能扩展现有类型的能力等等。

Dyalect软件特色

模组

任何带有代码的文件(或目标文件)都称为模块。因此,此模块的名称与文件的名称相同(扩展名除外)。模块用于分隔功能块。每个程序都可以导入一个模块,并可以访问其公共成员。

Dyalect中的模块是代码重用和面向组件编程的主要工具。

自定义类型

Dyalect允许定义自定义类型。语法非常简单:输入Point(x,y)

异常处理

Dy支持结构化异常处理,该结构化异常处理被多种编程语言(包括C#等语言)采用

范围

Dy具有用于生成值范围的内置函数。Dy中的范围是迭代器,因此以非严格方式执行。从根本上讲,范围接近IEnumerable<>.NET。

通常,可以使用静态Iterator.range方法实例化范围

模式匹配

模式匹配是编写条件的更简洁和声明的方式。模式可以测试某个值是否具有特定形状,并从该值中提取。例如,您可以测试值是否是特定长度的,并将该的某些元素绑定到变量。

Dyalect控制台

Dyalect控制台(或dya)是一个跨平台的命令行实用程序,可以用作交互式环境和Dyalect编译器/解释器的接口。Dya支持可在交互式环境中直接执行的命令行开关和命令。

Dyalect使用说明

Dy具有C风格的语法,深受Swift,Go和C#等语言的启发。Dy中的分号是可选的,但是如果要在一行上放置多个,则可能需要使用分号。例如,以下代码不需要分号:

yield 1

yield 2

然而,这确实做到了:

yield 1; yield 2

像C Dy一样,使用parens进行分组,例如:

Dy不是对身份敏感的语言(例如,Python)。相反,Dy在代码块中使用C样式大括号:

实际上,Dy中的所有控件结构都需要大括号,而括号是完全可选的。例如,此C#代码在Dy中无效,甚至无法编译:

循环也是如此。

Dy是一种自由格式的语言,这意味着在大多数情况下,Dy也将忽略换行符。但是有时可能会考虑到它们。这里的规则非常直观,简单(与Swift相似)。

例如,以下代码:

x = foo

(1, 2, 3)

表示:写入x的值foo并返回一个元组(1,2,3)。是的,Dy有元组。是的,return关键字仍然在我们这里,但是是可选的(除非您想尽早脱离某个功能)。

现在是第二个代码示例:

x = foo (1, 2, 3)

这具有完全不同的含义。它的内容为:调用foo具有三个参数(分别为和)的函数1,2并将3结果写入变量x。

在这种特殊情况下,Dy在尝试确定我们在此处是函数调用还是在元组时会考虑换行符。

与数组和索引器类似的东西。返回一个元素的数组:

x = foo

[1]

从具有索引的数组中获取元素1:

x = foo[1]

好吧,让我们前进。

变数

从上面的代码中可以看到,您可以var像这样使用关键字声明一个新变量:

var one = 1

var two = 2

上面的代码按照该词的正确含义创建了两个变量-您可以随时更改它们的值:

one = 2

two = 1

但是,在很多情况下,这样的作实际上是没有意义的。为什么要在返回one变量2时two返回变量1?因此,Dy引入了只读变量的概念:

let one = 1

let two = 2

现在,如果您尝试更改其中任何一个的值,都会收到编译错误。let在大多数情况下,当您不需要或计划更改变量的值时,使用它是有意义的。换句话说,最好考虑let 默认使用。

控制流

Dyalect并没有发明子,而是使用了与其他编程语言非常相似的控制流构造。最基本的是当然是有条件的if-else商,你已经看到上面的代码示例:

else 子句是可选的,如果愿意,可以将其省略。

Dy支持以while,do-while和for。形式的循环。while是其中最基本的-执行直到条件成立true:

一while true { },除非你决定循环将永远执行break它的执行。do-while与该代码非常相似,唯一的例外是即使内部条件while不等于,它也将执行至少一次true。

for 如果要遍历的元素,可以派上用场:

当然,所有这些构造都具有比此处显示的功能更多的功能,但是您应该了解基本概念。

一切都是一种表达

Dy是一种以表达为中心的语言,这意味着Dy中的几乎所有内容都是一种表达。(顺便说一句,表达式总是产生一个值)。

考虑以下代码示例:

这段代码是正确的,但是Dy允许您以其他方式编写它:

实际上,即使大括号内的代码块也可以单独用作表达式!

循环也是表达式(甚至可以产生值):

上面的代码计算为8。

职能

像许多其他语言一样,Dy支持一流功能的概念。这些功能可以视为常规值。您可以将它们存储在变量中,作为参数传递给其他函数,依此类推。例如:

可以使用C#语法创建匿名函数:

(x, y) => x + y

但是,尽管在C#中此类函数与常规命名函数在根本上有所不同,但是在Dy中它们之间的唯一区别是缺少匿名函数的名称(并且可以通过将函数分配给变量来添加该名称):

您可以通过本例中的两个函数的名称来引用它们,并以完全相同的方式使用它们。匿名函数甚至可以包含带有多个的主体:

Dyalect中的函数可以具有可选参数。您可以通过为其分配默认值来使任何函数参数成为可选参数:

函数参数的默认值必须是原始类型(整数,浮点数,字符,字符串或nil)。函数可以具有任意数量的可选参数(如果不需要,则可以没有)。

Dyalect函数的另一个有趣的功能是参数。您可能已经注意到,所有函数参数都具有不同且唯一的名称。为什么不在函数调用中使用它们?Dyalect允许-结果是,您可以使用参数的名称以及它们在参数列表中的位置将参数传递给函数:

当您通过名称传递参数时,可以按您喜欢的任何顺序提供名称,例如,您可以将函数调用sum(x, y, z)为sum(z:, y: x:)。您还可以混合使用位置参数和命名参数。但是,有一个重要的限制-位置参数应始终位于命名参数之前。换句话说,调用这样的函数是错误的:

sum(x: 1, 2, 3)

上一篇 2023-02-16
下一篇 2022-12-31

相关推荐

  • Dyalect

    Dyalect是一款编程语言,您可以将其添加到.NET Core使用,可以在软件上快速编辑相关的代码项目,支持复杂类型元组、数组、地图、迭代器、范围、模式匹配、异常处理、模组、...
正在提交中,请稍等片刻...

发表回复

请登录后评论...
登录后才能评论

评论列表 (0条)