# Değişkenler

&#x20;Modern diller hafızada saklanan değerleri değişkenler ile ifade etmektedir.\
• Değişkenler hafızada geçici olarak saklanan değerleri temsil eder . • Dart dilinde değişken için tür belirtmemize gerek yoktur. Not : Değişkenler kalıcı değildir. Programdan çıkıldığında değerler kaybolur. Kalıcı değerler için değişkenlerin değerleri diske yazılmalıdır.

* Modern diller hafızada saklanan değerleri değişkenler ile ifade etmektedir.
* Değişkenler hafızada geçici olarak saklanan değerleri temsil eder .
* Dart dilinde değişken için tür belirtmemize gerek yoktur.

{% hint style="info" %}
**Değişkenler kalıcı değildir. Programdan çıkıldığında değerler kaybolur. Kalıcı değerler için değişkenlerin değerleri diske yazılmalıdır.**
{% endhint %}

## Değişken oluşturma

| **Değişken Belirteci** | **Değişken Adı** | **Atama Operatörü** | **Değişken Değeri** |
| :--------------------: | :--------------: | :-----------------: | :-----------------: |
|          `var`         |       `yas`      |         `=`         |        `34;`        |

**var yas = 34;**

## Tür Belirterek Değişken oluşturma

| **Değişken Türü** | **Değişken Adı** | **Atama Operatörü** | **Değişk**en Değeri |
| :---------------: | :--------------: | :-----------------: | :-----------------: |
|       `int`       |       `yas`      |         `=`         |        `34;`        |

**int yas = 34;**

## *Data Tipleri*

* Tam Sayılar : **Int**
* Ondalıklı Sayılar : **Double**
* Metinsel İfadeler : **String**
* Mantıksal İfadeler : **Bool: True veya False**

## *Literals – Değerlerin Yazılma Kuralları*

• **Literals değişkenler için kullanılan değerlerin nasıl yazılması gerektiğini**\
**temsil eder.**

* "Ahmet"   // Metinsel ifade (String)
* "A"            // Harfsel ifade&#x20;
* 23            // Tam Sayı (int)
* 1.45         // Ondalıklı Sayı (double)

## *print() metodu*

String ifade içine $ ifadesi kullanılarak çıktıya değişken eklenebilir.

```dart
var ad = "Ahmed";
int yas = 10;

print("$ad Bursada $yas yıldır yaşamaktadır.");
```

## *Değişkenleri Yazdırma*

String ifade içine ${} ifadesi kullanılarak işlem yapılabilir.

```dart
int a = 10;
var b = 20;

print("$a ve $b nin toplamı : ${a+b}")


// >>  10 ve 20 nin toplamı : 30 
```

## Type Safety – Tür Güvenliği

• Oluşturduğunuz değişkene farklı türde değişken atayamazsınız

```dart
var deger = 100;
deger = "merhaba";
```

## Değişkenin kapsamı (Global ve Local Değişken )

• Süslü parantez { } bizim kapsamımızı belirler. Değişkenin ulaşılabilirliği\
buna bağlıdır.

```dart
class sdeneme {
    int z = 10; //global değişken
    int y = 20; // global değişken 
    
    void topla() {
    int x = 40; // local değişken, global değişkene baskın gelir
    x = x +y;
    print(x); // 40 + 20 = 60
    }
    
    void carpma(){
    x = x *y;
    print(x); // 10 * 20 = 200
    }
}
```

## Constant - Sabitler

* Sabitler içerisine bir kere veri atıldığında bir daha değiştiremeyeceğiniz yapılardır.&#x20;
* **final** ve **const** ismi ile kullanılırlar.&#x20;
* **const** değişken oluşturduğumuz anda hafızada oluşur.&#x20;
* **final** değişken oluşturulduktan sonra kod çalıştırıldığında hafızada oluşur.&#x20;
* **const** sınıf içinde kullanılmaz.&#x20;
* Genelde yaygın kullanım **final** dır.&#x20;
* Sabit kullanmak memory yönetimini rahatlatır.&#x20;
* Çünkü hafızada sabit için yer ayrılır ve değişim olmayacağı için açılan yer yeni bir değer\
  almak için beklemez.&#x20;
* Sadece kullanılma amaçlı değişkenler için kullanılması için uygundur.

```dart
final pi = 3.14;
final String mesaj = "merhaba";
const y = 20;
const double a = 20.9;
```
