Skip to content

Latest commit

 

History

History
353 lines (283 loc) · 12.6 KB

docs-tr.md

File metadata and controls

353 lines (283 loc) · 12.6 KB

V Dokümantasyonu

(V'nin standart kütüphanelerinin dokümantasyonu için bu adresi ziyaret edin https://modules.vlang.io/)

Giriş

V, sürdürülebilir yazılımlar için tasarlanmış, statik olarak yazılan, derlenmiş bir programlama dilidir.

Go dili ile benzerlikler içerir ve tasarım açısından Oberon, Rust, Swift, Kotlin ve Python'dan etkilenmiştir.

V çok basit bir programlama dilidir. Bu dokümantasyonu bitirmeniz 1 saat civarı sürecek ve dokümantasyonu bitirdiğinizde V programlama dilinin büyük bir kısmını öğrenmiş olacaksınız.

V programlama dili minimum soyutlama ile basit ve temiz kod yazmayı sağlar.

Basit olmasının yanında, V geliştiriciye çok fazla güç verir. Diğer dillerde yapabileceğiniz her şeyi V ile de yapabilirsiniz.

Kaynak kodundan indirmek

V'nin en son ve en iyi sürümünü indirmenin ana yolu kaynak kodunu indirmektir. Kaynak kodunu indirmek, kolay bir seçenektir ve genelde sadece bir kaç dakikanızı alır.

Linux, macOS, FreeBSD, vb. için:

Kaynak kodunu indirmek için git'e ve tcc, gcc, clang veya msvc gibi bir C compiler'a ihtiyacınız var.

git clone https://github.com/vlang/v
cd v
make

Geliştirme araçlarını nasıl indireceğinizi görmek için buraya bakabilirsiniz.

Windows:

Kaynak kodunu indirmek için git'e ve tcc, gcc, clang veya msvc gibi bir C compiler'a ihtiyacınız var.

git clone https://github.com/vlang/v
cd v
make.bat -tcc

Not: -tcc yerine -gcc, -msvc, -clang gibi başka bir C compiler'da kullanabilirsiniz. Fakat -tcc küçük, hızlı ve indirmesi kolaydır. (V önceden oluşturulmuş binary'yi otomatik olarak indirecektir.)

C compiler'ı yüklemeyi ve daha fazla bilgiyi burada bulabilirsiniz.

Bu klasörü "Ortam Değişkenleri" yoluna eklemeniz önerilir. Bu işlem v.exe symlink komutuyla yapılabilir.

Not: Bazı antivirüs programları(Symantec gibi) tek karakterli(v.exe gibi) çalıştırılabilir dosyalara karşı paranoyaktır. Bu durumda geçici bir çözüm v.exe programını vlang.exe ye kopyalamaktır (kopya daha yeni olsun diye) ya da antivirüs programınızdan V dosyasını beyaz listeye alabilirsiniz.

Android

Android cihazlarda V grafik uygulamalarını çalıştırmak vab sayesinde mümkündür.

V Android bağımlılıkları: V, Java JDK >= 8, Android SDK + NDK.

  1. Bağımlılıkları indirin (vab)
  2. Android cihazınızı bağlayın
  3. Run:
 git clone https://github.com/vlang/vab && cd vab && v vab.v
 ./vab --device auto run /path/to/v/examples/sokol/particles

Daha fazla detay ve sorun giderme için, lütfen vab GitHub deposunu ziyaret edin.

İçerik Tablosu

Hello World

fn main() {
	println('merhaba dünya')
}

hello.v adlı bir dosya oluşturun ve bu kod parçasını dosyaya yapıştırın. Sonra bunu yapın: v run hello.v.

Burada V'yi burada anlatıldığını gibi v symlink ile symlinklediğini varsayıyorum. Eğer yapmadıysan manuel olarak V'nin konumunu yazman gerekiyor.

Tebrikler, az önce ilk V programını yazdın!

v hello.v komutunu çalıştırmadan da programını derleyebilirsin. v help yazarak desteklenen tüm komutları görebilirsin.

Yukarıdaki örnekteki gibi, fonksiyonlar fn kelimesi ile belirtiliyor. Dönüş tipi fonksiyon isminden sonra belirtilir. Bu durumda main hiç bir şey döndürmüyor.

Diğer bir çok programlama dilleri(C, Go ve Rust vb.) main programının giriş noktası. Yani program çalıştığında ilk önce main içindeki kodlar çalışmakta.

println bir kaç yerleşik fonksiyondan bir tanesi. Kendisine iletilen değeri çıktıya yazdırır.

Tek dosyalı programlarda fn main() belirtmenize gerek yoktur. fn main() küçük programlar, "scriptler" ve öğrenme sırasında daha kullanışlıdır. Kısa olması için bu tutorialda fn main() geçeceğiz.

Bu demek oluyor ki V dilinde "merhaba dünya" yazdırmak şu kadar kolay:

println('merhaba dünya')

Birden fazla dosyası olan projeleri çalıştırma

Birden fazla ".v" dosyalı bir klasörün olduğunu varsayalım, o dosyaların biri main() fonksiyonunu içeriyor, diğerleri ise yardımcı fonksiyonları. Konuya göre düzenlenmiş olabilirler fakat hala yeniden kullanılabilir modüller olarak yapılandırılmamışlar ve sen onları tek bir program olarak derlemek istiyorsun.

Diğer dillerde "include"lar veya tüm dosyaları numaralandırmak için bir derleme sistemi kullanmanız, bunları nesne dosyalarına ayrı ayrı derlemeniz ve ardından bunları son bir yürütülebilir dosyaya bağlamanız gerekir.

V'de ise, tüm ".v" dosyalarının tüm klasörünü sadece v run . yazarak derleyebilirsin. Geçiş parametrelerini de aynı zamanda çalıştırabilirsin. Sadece şunu yapman gerekli: v run . --yourparam some_other_stuff

Yukardaki yöntem ilk önce tüm dosyaları tek program altında(senin dosya/klasörünün adıyla) derleyecek, sonra programı CLI parametreleri olarak belirtilen --yourparam some_other_stuff ile birlikte çalıştıracaktır.

Programın daha sonra aşağıdaki CLI parametrelerini kullanabilir:

import os

println(os.args)

Not: Başarılı bir çalıştırmadan sonra, V tüm çalıştırılabilir dosyaları silecektir. Eğer dosyaların silinmemesini istiyorsanız v -keepc run . komutunu kullanın veya v . komutu ile manuel olarak kopyalayın.

Not: Herhangi bir V derleyici etiketi, run komutundan önce belirtilmelidir. Kaynak dosyası/klasöründen sonra olan her şey, direkt olarak programa geçirilecektir. V tarafından işlenmeyecektir.

Yorum satırları

// Tek satırlık yorum.
/*
Çok satırlı yorum.
   /* İç içe geçmiş olabilir. */
*/

Fonksiyonlar

fn main() {
	println(add(77, 33))
	println(sub(100, 50))
}

fn add(x int, y int) int {
	return x + y
}

fn sub(x int, y int) int {
	return x - y
}

Yine, tür argümanın adından sonra gelir.

Go ve C dilindeki gibi fonksiyonlar aşırı yüklenemez. Böylece kod daha sade olur ve okunulabilirliği artırır.

Hoistingler

Fonksiyonlar, oluşturuldukları yerden önce kullanılabilir: Yani fonksiyonu satır 200'de oluşturduysanız, satır 100'de bu fonksiyonu çağırabilirsiniz. Mesela yukardaki örnekte add ve sub, main'den sonra belirtilmiş ama yine de add ve sub fonksiyonunu main fonksiyonunda çağırabilirseniz. Bu V'deki tüm fonksiyon bildirmelerinde geçerlidir ve "header" dosyalarına olan ihtiyacı ortadan kaldırır.

Birden fazla değer döndürme

fn foo() (int, int) {
	return 2, 3
}

a, b := foo()
println(a) // 2
println(b) // 3
c, _ := foo() // `_` kullanan değerleri görmezden gelin

Sembol görünürlüğü

pub fn public_function() {
}

fn private_function() {
}

Fonksiyonlar varsayılan olarak "private"dır(dışarıdan erişelemez). Diğer modüllerde fonksiyonu kullanmak için fonksiyonu belirtirken başına pub eklemeniz gerekmektedir. Aynı olay sabit değerler(constants) ve türler içinde geçerlidir.

Not: pub sadece adlandırılmış bir modülden kullananılabilir. Modüller hakkında daha fazla bilgi için Modüller bölümüne bakın.

Değişkenler

name := 'Bob'
age := 20
large_number := i64(9999999999)
println(name)
println(age)
println(large_number)

Değişkenler := ile bildirilir. V'de sadece bu yolla değişkenleri belirtebilirsiniz. Bu yüzden her değişkenin bir başlangıç değeri olur.

Değişkenin türü sağ taraftaki değerden çıkarılır, yani := sonrasına göre belirlenir. Farklı bir tür seçmek için, tür dönüştürmeyi kullanın: T(v) ifadesi, v değerini T tipine dönüştürür.

Çoğu diğer programlama dillerinin aksine, V sadece fonksiyonlar içinde değişken belirtmeye izin verir. Global değişkenlere izin verilmez. V'de global durum yoktur.

Diğer kod tabanları ile tutarlılık için tüm değişken ve fonksiyon adları PascalCase kullanması gereken tür adlarının aksine snake_case tarzını kullanmalıdır.