Darabonba 语言学习--Function

简介: 本篇文章仅作为本人学习记录,如涉及侵权问题。及时联系作者,予以删除。

function

介绍

Darabonba 除了 API 以外,也提供了 Function 关键字用来定义普通的函数,它可以像 API 方法一样使用定义的模块属性,示例如下。

// 模块属性type@operator=string// 模块初始化函数init(operator: string) {
@operator=operator;
}
functiontest(action: string): string {
return`${@operator}do ${action}`;
}

static function


在接下来的文章模块化中,我们会提到模块中可以定义静态方法,可以在直接通过模块包的引用来调用,通过 static function 定义的方法与模块中通过 function 定义的方法不同,它无法使用模块的属性,示例如下。

staticfunctiontest(str: string): string {
returnstr;
}

async function


Darabonba 中还提供了 async function 关键字定义异步方法,通过 async function 关键字定义的异步方法可以让 TypeScriptC# 这样有异步方法语言的生成器根据该关键字生成对应的异步操作,例如在生成的 TypeScript 代码中的方法会带上 async 关键字,同时在调用对应的异步方法时也会同时加上 await 关键字,api 方法默认为异步方法。

staticasyncfunctionstaticAsyncTest(str: string): string {
returnstr;
}
asyncfunctionasyncTest(str: string): string {
returnstr;
}

方法声明


Darabonba 中也提供了方法声明,跟 function 类似,只是方法声明不提供方法体。 Darabonba 作为描述性语言,无法实现一些复杂逻辑,所以需要通过方法声明、在各语言中生成 unimplement 的方法,开发者可以自行实现各语言逻辑从而提供更完善的功能,例如在 api 示例中的 Util 模块就是一个含有大量方法声明的模块,从而为 api 中的复杂逻辑实现提供可能。

/** * This is a utility module */staticasyncfunctionreadAsJSON(stream: readable): any;
staticfunctionequalNumber(val1: number, val2: number): boolean;
staticfunctionassertAsMap(value: any): map[string]any;


相关文章
|
7月前
|
机器学习/深度学习 数据采集 监控
算法金 | DL 骚操作扫盲,神经网络设计与选择、参数初始化与优化、学习率调整与正则化、Loss Function、Bad Gradient
**神经网络与AI学习概览** - 探讨神经网络设计,包括MLP、RNN、CNN,激活函数如ReLU,以及隐藏层设计,强调网络结构与任务匹配。 - 参数初始化与优化涉及Xavier/He初始化,权重和偏置初始化,优化算法如SGD、Adam,针对不同场景选择。 - 学习率调整与正则化,如动态学习率、L1/L2正则化、早停法和Dropout,以改善训练和泛化。
62 0
算法金 | DL 骚操作扫盲,神经网络设计与选择、参数初始化与优化、学习率调整与正则化、Loss Function、Bad Gradient
|
机器学习/深度学习 存储 人工智能
大语言模型的预训练[5]:语境学习、上下文学习In-Context Learning:精调LLM、Prompt设计和打分函数(Scoring Function)设计以及ICL底层机制等原理详解
大语言模型的预训练[5]:语境学习、上下文学习In-Context Learning:精调LLM、Prompt设计和打分函数(Scoring Function)设计以及ICL底层机制等原理详解
大语言模型的预训练[5]:语境学习、上下文学习In-Context Learning:精调LLM、Prompt设计和打分函数(Scoring Function)设计以及ICL底层机制等原理详解
|
前端开发
前端学习案例-一个function的讲解
前端学习案例-一个function的讲解
48 0
|
JavaScript 前端开发 API
手摸手一起学习Typescript第三天 - 函数Function
手摸手一起学习Typescript第三天 - 函数Function
|
JavaScript 前端开发 C++
在AngularJS中学习javascript的new function意义及this作用域的生成过程
慢慢入门吧,不着急。 至少知道了controller和service的分工。 new function时,隐含有用this指向function的prototype之意。 这样,两个JAVASCRIPT难点,作用域及原型域得以统一。
1069 0
|
JavaScript 前端开发 HTML5
Ext 4 概述(三)之Env命名空间 & 语言增强包 & Ext.Function
Env命名空间 提供浏览器和操作系统的相关信息,还有告诉我们现代浏览器提供了什么功能。 Ext.env.Browser 该类提供了全部浏览器的元信息(名称、引擎、版本、是否 Strict 模式等等。
835 0
|
前端开发 JavaScript 对象存储
学习JavaScript 的必备 (一),让您对js的 function, javascript内置对象,this概念及之间的关系不再迷惑。(希望能置为推荐篇,为更多的js初学者关注)
 -------------------该文摘自于匿名教程总结,希望对初学js的同学有帮助,因为它解决了我学习js的众多迷惑。。。 函数是进行模块化程序设计的基础,编写复杂的Ajax应用程序,必须对函数有更深入的了解。
908 0
|
3月前
|
中间件 Docker Python
【Azure Function】FTP上传了Python Function文件后,无法在门户页面加载函数的问题
通过FTP上传Python Function至Azure云后,出现函数列表无法加载的问题。经排查,发现是由于`requirements.txt`中的依赖包未被正确安装。解决方法为:在本地安装依赖包到`.python_packages/lib/site-packages`目录,再将该目录内容上传至云上的`wwwroot`目录,并重启应用。最终成功加载函数列表。
|
4月前
|
JavaScript
箭头函数与普通函数(function)的区别
箭头函数是ES6引入的新特性,与传统函数相比,它有更简洁的语法,且没有自己的this、arguments、super或new.target绑定,而是继承自外层作用域。箭头函数不适用于构造函数,不能使用new关键字调用。

热门文章

最新文章