こんな感じ
Flutter
— げん げんと (@gento34165638) June 29, 2020
3つの関数発動パターン pic.twitter.com/S9yf7CnKmv
関数発動には3パターンある
状況によって使い分けてみてはいかがでしょう?
関数名で呼び出す
main.dart
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
void answerQuestion() {
print('押されましたね');
}
@override
Widget build(BuildContext context) {
var questions = ['何が食べたい?', 'どこに行きたい?'];
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('My First....'),
),
body: Column(
children: [
Text('関数発動の3パターン'),
RaisedButton(
child: Text('1つ目'),
onPressed: answerQuestion,
),
],
)),
);
}
}
名無しで呼び出す その1
一度しか呼び出すことがなく、尚且つ短いコードで完結する場合に便利
main.dart
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
var questions = ['何が食べたい?', 'どこに行きたい?'];
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('My First....'),
),
body: Column(
children: [
Text('関数発動の3パターン'),
RaisedButton(
child: Text('2つ目'),
// Anonymous Functions
onPressed: () => print('2つ目が押されたよ'),
),
],
)),
);
}
}
名無しで呼び出す その2
その1と同じで、一度しか呼び出すことがない場合に便利。
そしてこの書き方は、長いコードでも書くことができる。
main.dart
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
var questions = ['何が食べたい?', 'どこに行きたい?'];
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('My First....'),
),
body: Column(
children: [
Text('関数発動の3パターン'),
RaisedButton(
child: Text('3つ目'),
// Anonymous Functions for long code
onPressed: () {
// 少し長い処理の場合
print('3つ目が押されたよ');
},
),
],
)),
);
}
}
全部のパターン
main.dart
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
void answerQuestion() {
print('押されましたね');
}
@override
Widget build(BuildContext context) {
var questions = ['何が食べたい?', 'どこに行きたい?'];
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('My First....'),
),
body: Column(
children: [
Text('関数発動の3パターン'),
RaisedButton(
child: Text('1つ目'),
onPressed: answerQuestion,
),
RaisedButton(
child: Text('2つ目'),
// Anonymous Functions
onPressed: () => print('2つ目が押されたよ'),
),
RaisedButton(
child: Text('3つ目'),
// Anonymous Functions for long code
onPressed: () {
// 少し長い処理の場合
print('3つ目が押されたよ');
},
),
],
)),
);
}
}