Belajar Variable Scope di Dart

Dhe997

Variable Scope

Setelah Anda memisahkan kode Anda ke dalam blok atau fungsi yang terpisah, perlu Anda ketahui bahwa hal tersebut akan mempengaruhi bagaimana suatu variabel digunakan. 

Setiap variabel memiliki scope atau lingkupnya masing-masing. Sebuah variabel dianggap satu lingkup selama masih berada di satu blok kurung kurawal yang sama. Lingkup ini menentukan bagian kode mana yang dapat membaca dan menggunakan variabel tersebut.
Perhatikan kode berikut ini:


  1. void main() {

  2.   var price = 300000;

  3.   var discount = 0;

  4.   print('You need to pay: ${price - discount}');

  5. }





Pada kode di atas variabel discount masih bisa diakses dari dalam kode if karena masih berada di dalam satu scope fungsi main(). Bagaimana jika Anda ingin memisahkan kode di atas menjadi dua fungsi untuk menghitung diskonnya?


  1. void main() {

  2.   var price = 300000;

  3.   var discount = checkDiscount(price);

  4.   print('You need to pay: ${price - discount}');

  5. }

  6.  

  7. num checkDiscount(num price) {

  8.   num discount = 0;

  9.   if (price >= 100000) {

  10.     discount = 10 / 100 * price;

  11.   }

  12.  

  13.   return discount;

  14. }





Variabel discount dideklarasikan pada fungsi checkDiscount() sehingga memiliki scope pada fungsi tersebut dan menyebabkan eror pada fungsi main()
Maka untuk mengatasinya kita tetap perlu membuat variabel di kedua fungsi.
Selain berada dalam lingkup fungsi, suatu variabel juga bisa menjadi variabel global, yaitu variabel yang dideklarasikan di luar blok kode apa pun. Variabel ini bisa diakses di mana pun selama masih berada di berkas yang sama.


  1. var price = 300000;

  2.  

  3. void main() {

  4.   var discount = checkDiscount(price);

  5.   print('You need to pay: ${price - discount}');

  6. }

  7.  

  8. num checkDiscount(num price) {

  9.   num discount = 0;

  10.   if (price >= 100000) {

  11.     discount = 10 / 100 * price;

  12.   }

  13.  

  14.   return discount;

  15. }





Variabel juga dapat memiliki scope yang sespesifik mungkin hingga ke level control flow.


  1. num checkDiscount(num price) {

  2.   num discount = 0;

  3.   if (!discountApplied) { // Error

  4.     if (price >= 100000) {

  5.       discount = 10 / 100 * price;

  6.       var discountApplied = true;

  7.     }

  8.   }

  9.  

  10.   return discount;

  11. }




Posting Komentar

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.