1. 函数的定义
void printInfo ( ) {
print ( '我是一个自定义方法' ) ;
}
int getNum ( ) {
var myNum = 123 ;
return myNum;
}
void main ( ) {
printInfo ( ) ;
var n = getNum ( ) ;
print ( n) ;
}
2. 方法传参
void main ( ) {
int sunNum ( int n ) {
var sum = 0 ;
for ( var i = 1 ; i <= n; i++ ) {
sum += i;
}
return sum;
}
var n1 = sunNum ( 5 ) ;
var n2 = sunNum ( 100 ) ;
print ( n1) ;
print ( n2) ;
}
void main ( ) {
String printUserInfo ( String username, int age ) {
return "姓名:$username---年龄:$age" ;
}
print ( printUserInfo ( '张三' , 20 ) ) ;
}
2.1 定义一个带可选参数的方法
void main ( ) {
String printUserInfo ( String username, [ int? age] ) {
if ( age != null ) {
return "姓名:$username---年龄:$age" ;
}
return "姓名:$username---年龄保密" ;
}
print ( printUserInfo ( '张三' , 20 ) ) ;
print ( printUserInfo ( '张三' ) ) ;
}
2.2 定义一个带默认参数的方法
void main ( ) {
String printUserInfo ( String username, [ String sex = '男' , int? age] ) {
if ( age != null ) {
return "姓名:$username---性別:$sex---年龄:$age" ;
}
return "姓名:$username---性別:$sex---年龄保密" ;
}
print ( printUserInfo ( '张三' ) ) ;
print ( printUserInfo ( '张三' , '女' , 20 ) ) ;
}
2.3 定义一个带命名参数的方法
void main ( ) {
String printUserInfo ( String username, { int? age, String sex = '男' } ) {
if ( age != null ) {
return "姓名:$username---性別:$sex---年龄:$age" ;
}
return "姓名:$username---性別:$sex---年龄保密" ;
}
print ( printUserInfo ( '张三' ) ) ;
print ( printUserInfo ( '张三' , age: 20 ) ) ;
}
2.4 实现一个把方法当做参数的方法
void main ( ) {
fn1 ( ) {
print ( 'fn1' ) ;
}
fn2 ( fn ) {
fn ( ) ;
}
fn2 ( fn1) ;
}
3. 箭头函数
void main ( ) {
List myList = [ '苹果' , '香蕉' , '西瓜' ] ;
myList. forEach ( ( value) {
print ( value) ;
} ) ;
myList. forEach ( ( value ) => print ( value) ) ;
myList. forEach ( ( value ) => { print ( value) } ) ;
}
void main ( ) {
List myList = [ 4 , 1 , 2 , 3 , 4 ] ;
var newList = myList. map ( ( value) {
if ( value > 2 ) {
return value * 2 ;
}
return value;
} ) ;
print ( newList. toList ( ) ) ;
var newList_1 = myList. map ( ( value ) => value > 2 ? value * 2 : value) ;
print ( newList_1. toList ( ) ) ;
}
4. 匿名方法
void main ( ) {
var printNum = ( int n) {
print ( n + 2 ) ;
} ;
printNum ( 12 ) ;
}
5. 自执行方法
void main ( ) {
( ( int n) {
print ( n) ;
print ( '我是自执行方法' ) ;
} ) ( 12 ) ;
}
6. 递归函数
void main ( ) {
var sum = 0 ;
fn ( int n ) {
sum += n;
if ( n == 0 ) {
return ;
}
fn ( n - 1 ) ;
}
fn ( 100 ) ;
print ( sum) ;
}
7. 闭包
void main ( ) {
fn ( ) {
var a = 123 ;
return ( ) {
a++ ;
print ( a) ;
} ;
}
var b = fn ( ) ;
b ( ) ;
b ( ) ;
b ( ) ;
}