# 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;
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://haluk-hackali.gitbook.io/flutter-dart-notes/dart/dart-notlari/degiskenler.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
