[Flutter] TIL 04
Dart Functions
ロボットがスーパーの牛乳を送ってくれればと言った.では、右に移動し、左に移動し、前に移動します...など多くの行為をして、私は自分で指導します.そうすると面倒なので、コードブロックでパッケージします.コードブロックは、一連のカッコ内のコードで表されます.
カッコにすべての指示が含まれている場合は、対応するコードブロックの名前を指定できます.
void getMilk() {
leave house
move right
move left
...
}
関数呼び出し時に発生するすべてのことが含まれます.以下の関数に名前がついているので「Named function」と呼ばれます.함수 선언
void getMilk() { //doSomething }
以下の関数に名前がないので「Anonymousfunction」と呼ばれます.(匿名関数)() { //doSomething }
ex)
onPressed: (){
print('Left button got pressed');
함수 호출
getMilk();
🚓パラメータ付き関数datetypeとパラメータ名を同時に記入する必要があります.
함수 선언
void getMilk (int bottles) {
double cost = bottles * 1.5;
}
--
void getMilk ({int numBottles}) {
double cost = bottles * 1.5;
}
関数名の横にあるカッコでは、main関数に必要な値を直接入力できます.함수 호출
getMilk(2);
--
getMilk(numBottles: 2);
🚅矢印関数単一のコマンドがある場合は矢印を使用します.2行以上の命令はできません.つまり、returnキーワードを使う意味は同じです.
void main() => runApp(XylophoneApp());
↓↓↓
void main() {
runApp(
XylophoneApp()
);
}
매개변수가 있는 화살표 함수
int add(int n1, int n2) {
return n1+n2;
}
↓↓(동일한 의미임)
int add(int n1, int n2) => n1 + n2;
同じ位置にある画像を別の画像に変更します。
左のサイコロを5のサイコロに変えたいとします.Widget buildブロックに
var leftDiceNumber = 1;
を作成します.child: Image.asset('Images/dice1.png')),
↓↓
child: Image.asset('Images/dice$leftDiceNumber.png')),
$
の後に変数名を記入すればいいです.画像ファイル1,2,3...変数値に基づいて変更できるのは、使用する場合のみです.Widgetコンストラクションブロックの外に変数(たとえば@overrideの真上)を宣言した場合、hot-reloadは実行されません.hot-reloadはコードブロックにのみ変更を反映するためです.だからコードブロックに変数を宣言しましょう!
Stateful Widget
class DicePage extends StatefulWidget {
_DicePageState createState() => _DicePageState();
}
class _DicePageState extends State<DicePage> {
int leftDiceNumber = 1;
Widget build(BuildContext context) {
return Center(
child: Row(
children: <Widget>[
Expanded(
child: TextButton(
onPressed: (){
leftDiceNumber = 5;
},
child: Image.asset('images/dice$leftDiceNumber.png')),
),
Expanded(
child: TextButton(
onPressed: (){
print('Right button got pressed');
},
child: Image.asset('images/dice1.png')),
),
],
),
);
}
}
このコードは、ステータスレスコードをコピーしてstateful形式で貼り付けられます.しかし、このコードは左サイコロを押すと5にはなりません.ステータスを更新するには、setState
メソッドを呼び出す必要があります.Reference
この問題について([Flutter] TIL 04), 我々は、より多くの情報をここで見つけました https://velog.io/@jiiyoung/Flutter-TIL-04テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol