bool ve ?: Operatörü
Coddy'nin Flutter Journey'sinin Etkileşimli Uygulamalar bölümünün bir parçası. Ders 17 / 34.
Bazı değerler yalnızca evet ya da hayır olabilir: ışık açık mı, kutu işaretli mi. Dart'ta bunların türü bool, iki değerleri ise true ve false'tur:
bool _isOn = false;Bir bool değerinin önündeki ! onu tersine çevirir; yani _isOn = !_isOn;, true değerini false'a ve false değerini true'ya dönüştürür. Lambanın _flip yöntemi bunu zaten yapar.
Bir bool değerine bağlı olarak bir şeyi ya da başka bir şeyi göstermek için koşullu ifadeyi ? : kullan. Bir soru gibi okunur: açık mı? öyleyse bunu, değilse şunu.
Text(_isOn ? 'On' : 'Off')
Icon(Icons.star, color: _isOn ? Colors.red : Colors.black)? işaretinden önce true ya da false olan bir şey gelir. Ardından true için olan değer, sonra : ve false için olan değer gelir. Bir değerin kullanılabildiği her yerde işe yarar: metinde, renkte, boyutta.
Görev
KolaySwitch düğmesi _isOn değerini değiştiriyor, ancak lamba hep kapalı görünüyor. ? : kullanarak _isOn true olduğunda metnin The light is on demesini ve ampulün Colors.amber olmasını, aksi hâlde metnin The light is off demesini ve ampulün Colors.grey olmasını sağla.
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> {
bool _isOn = false;
void _flip() {
setState(() {
_isOn = !_isOn;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Lamp')),
body: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.lightbulb, size: 96, color: Colors.grey),
const Text('The light is off'),
const SizedBox(height: 16),
ElevatedButton(onPressed: _flip, child: const Text('Switch')),
],
),
),
);
}
}
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çme5Karar Yapıları
bool ve ?: Operatörüif ve else ile Karar VermeDart'ta Ve, Veya ve DeğilBir Widget'ı Gösterme ve GizlemeBir Düğmeyi PasifleştirmeKendi başına pratik yap: Online Flutter derleyicisi