ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[Dart语法]第五章:函数

2021-02-10 23:04:26  阅读:158  来源: 互联网

标签:Tobu name printInfo 18 age Dart 语法 第五章 print


函数

函数定义

//定义函数(方法)
void printInfo() {
    String name = 'Tobu';
    return print(name);
}
//函数调用
printInfo();//Tobu

//私有函数定义 文件内可以随便调用
_privaFuction(){
    ...
}

函数参数

//默认参数,调用函数时一定要有  
_printInfo(String name, int age) {
    return print('name:$name,age:$age');
}
_printInfo('Tobu', 18);//name:Tobu,age:18


//[]位置可选参数,调用函数时可以有,也可以无,注意顺序
_printInfo(String name, int age, [String sex = '女']) {
    return print('name:$name,age:$age,sex:$sex');
}
_printInfo('Tobu', 18);//name:Tobu,age:18,sex:女
_printInfo('Tobu', 18, '男');//name:Tobu,age:18,sex:男


//{}命名可选参数,调用函数时可以有,也可以无,但要输入变量名
_printInfo({String name, int age}) {
    return print('name:$name,age:$age');
}
_printInfo(name: 'Tobu');//name:Tobu,age:null
_printInfo(name: 'Tobu', age: 18);//name:Tobu,age:18


//{}命名可选参数+@required	在可选参数中标注一定要嗷传入的@required,如果没传入会提示:The parameter 'name' is required.
//使用@required需要引入meta库,有flutter的material库则无须引入meta库
name: dart_lean
dependencies:
  meta: ^1.1.7
import 'package:meta/meta.dart';
//实例
_printInfo({@required String name, int age}) {
    return print('name:$name,age:$age');
}
_printInfo(age: 18);//name:null,age:18	报提示
_printInfo(name: 'Tobu', age: 18);//name:Tobu,age:18

箭头函数

List list = [1, 2, 3, 5, 6, 7];
list.forEach((element) => print(element));//1 2 3 5 6 7
//可以是条件表达式
list.forEach((element) => element > 3 ? print(element) : null); //5 6 7

匿名函数

/* 匿名函数结构

(function(){  
    //这里是块级作用域  
})(参数);

*/

//自定义匿名函数
int num = (x, y) {
    return x + y;
}(5, 3);
print(num);//8

//系统自带匿名函数
List list = [1, 2, 3, 4];
list.forEach((element) {
    print(element * 2);
});
/*
2
4
6
8
*/

函数闭包

//不会污染全局,常驻内存,性能消耗大
fn() {
    var a = 123;
    return () {
        a++;
        print(a);
    };
}

var b = fn();
b();//124
b();//125
b();//126

标签:Tobu,name,printInfo,18,age,Dart,语法,第五章,print
来源: https://www.cnblogs.com/TobuTobu/p/14396905.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有