博客
关于我
Dart开发之——函数
阅读量:100 次
发布时间:2019-02-26

本文共 1528 字,大约阅读时间需要 5 分钟。

Dart语言函数概述

1. 概述

Dart语言中的函数机制是其核心特性之一。本文将从以下几个方面探讨Dart中的函数特点:

  • 主函数(main)
  • 自定义函数
  • 可选参数函数
  • 匿名函数
  • 闭包

2. 主函数(main)

2.1 定义

main函数是Dart程序的入口点,通常用于处理命令行参数。它的特点是没有返回值,且省略了参数类型的声明。

2.2 完整示例

void main(List
args) {
print(args);
}

在程序参数处输入1,2,3即可运行并查看输出结果。

3. 自定义函数

3.1 定义特点

  • 自定义函数用于为特定功能命名。
  • 返回值和参数类型在定义时可以省略。
  • 只有一行代码的函数可以使用双箭头代替返回语句。
  • 函数格式应遵循:
返回值 函数名(参数){ 函数体 }

3.2 常见示例

main() {
var result = addFunction(1, 1);
print(result);
}
int addFunction(int a, int b) {
return a + b;
}

同样,可以省略返回值和参数类型:

addFunction(a, b) {
return a + b;
}

或使用双箭头:

addFunction(a, b) => a + b;

4. 可选参数函数

4.1 参数类型

Dart中的可选参数分为名称可选参数位置可选参数

  • 名称可选参数:参数列表放在大括号中,需使用required修饰,参数顺序不重要。
  • 位置可选参数:参数放在中括号中。

4.2 名称可选参数示例

main() {
myFunc(age: 18, name: "张三");
}
myFunc({required String name, required int age}) {
if (name != null) {
print("名字是:$name");
}
if (age != null) {
print("年龄是:$age");
}
}

4.3 位置可选参数示例

main() {
myFunc2("张三");
}
myFunc2(String name, [int? age]) {
if (name != null) {
print("名字是:$name");
}
if (age != null) {
print("年龄是:$age");
}
}

5. 匿名函数

5.1 定义特点

匿名函数没有名字,可直接赋值或调用。

5.2 示例

main() {
// 先赋值再调用
var res = func(1, 2);
print(res);
// 直接调用
(a, b) {
return a + b;
}(1, 2);
}
var func = (a, b) {
return a + b;
};

6. 闭包

6.1 说明

闭包是一种函数对象,能够记住其所在的作用域。

6.2 示例

main() {
var package = func("张三");
print(package());
}
func(name) {
return () => "Hello $name";
}

6.3 说明

  • 参数name仅在func内部使用,超出作用域后将失效。
  • func返回一个匿名函数(闭包),用于访问name的值。

转载地址:http://ovkk.baihongyu.com/

你可能感兴趣的文章
nodejs支持ssi实现include shtml页面
查看>>
Nodejs教程09:实现一个带接口请求的简单服务器
查看>>
nodejs服务端实现post请求
查看>>
nodejs框架,原理,组件,核心,跟npm和vue的关系
查看>>
Nodejs概览: 思维导图、核心技术、应用场景
查看>>
nodejs模块——fs模块
查看>>
Nodejs模块、自定义模块、CommonJs的概念和使用
查看>>
nodejs生成多层目录和生成文件的通用方法
查看>>
nodejs端口被占用原因及解决方案
查看>>
Nodejs简介以及Windows上安装Nodejs
查看>>
nodejs系列之express
查看>>
nodejs系列之Koa2
查看>>
Nodejs连接mysql
查看>>
nodejs连接mysql
查看>>
NodeJs连接Oracle数据库
查看>>
nodejs配置express服务器,运行自动打开浏览器
查看>>
NodeMCU教程 http请求获取Json中文乱码解决方案
查看>>
Nodemon 深入解析与使用
查看>>
NodeSession:高效且灵活的Node.js会话管理工具
查看>>
node~ http缓存
查看>>