final Değişkenler
Coddy'nin Flutter Journey'sinin Etkileşimli Uygulamalar bölümünün bir parçası. Ders 16 / 34.
final, değişmeyen bir değer için kullanılan diğer sözcüktür. Bir final değişkene değeri bir kez atanır ve ona bir daha asla başka bir değer verilemez:
final int total = _tickets * 12;
total = 50; // hata: total final olarak tanımlanmışconst ile arasındaki fark, değerin ne zaman bilindiğidir. const bir değer, 12 gibi, kodu yazdığınızda bilinir. final bir değer, şu anda kaç bilet olduğuna bağlı olan _tickets * 12 gibi, uygulama çalışırken hesaplanabilir.
const int price = 12; // her zaman 12
final int total = _tickets * price; // build çalıştığında belli olurbuild işlevinin başındaki bir final değişken her derlemede yeniden hesaplanır; bu nedenle setState çağrısından sonra yeni toplamı içerir. Bir kez ayarlayıp yalnızca okuyacağınız değerler için final kullanın; _tickets gibi değiştireceğiniz değerler içinse yalın bir int veya String kullanın.
Görev
KolayBir biletin fiyatı 12'dir. build metodunun başına const int price = 12; ve _tickets ile price'ın çarpımını içeren final bir total değişkeni ekle. Total: ? yerine Total: 12 olarak göster; böylece bir bilet daha eklendikten sonra Total: 24 görünür.
Kendin dene
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: const HomePage(),
);
}
}
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
int _tickets = 1;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Tickets')),
body: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text('Tickets: $_tickets', style: const TextStyle(fontSize: 24)),
Text('Total: ?', style: const TextStyle(fontSize: 24)),
const SizedBox(height: 16),
ElevatedButton(
onPressed: () {
setState(() {
_tickets++;
});
},
child: const Text('Add a ticket'),
),
],
),
),
);
}
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Etkileşimli Uygulamalar bölümündeki tüm dersler
7Anahtarlar ve Kaydırıcılar
Bir Anahtarla Açıp KapatmaBir Onay Kutusunu İşaretlemeKaydırıcıyla Bir Değer SeçmeKendi başına pratik yap: Online Flutter derleyicisi