Category: GolangPage 1 of 3
Sistem yazılımı yapanların illaki uğraştığı konulardan olan dosya işlemlerinde dosyanın olup olmadığı bilgisini alabileceğini Go kodu aşağıdaki şekildedir.
Sadece kod vereceğim. Kod içinde her methodun üstünde comment satırlarını ekledim, oradan bakabilirsiniz. Buradaki ana method os packeti içinde Stat() dır.
Her zaman iş için kod yazmak insanı daraltır. Bazen sınırlarınız zorlayıp keyifli keyifli düşünmek istersiniz. İşte öyle anlarımdan birinde golang ile asal sayı bulma algoritmaları neler olabilir diye…
Programlama ile uğraşırken yolunuz illaki birgün api‘lar ile çakışacaktır. Hele bunlardan REST ile içli dışlı olacaksanız aşağıdaki kod tam size göre. Lazım olacak dursun buralarda bi yerlerde.
Başlık biraz anlamsız oldu ama daha anlamlısını bulamadım, bulursanız ve bana yazarsanız sevinirim. Go programı çalışsın ama siz istemediğiniz sürece kapanmasın istiyorsunuz. Normal şartlarda program main fonksiyonundaki işini…
Programlarda gerekli olan işlemlerden biri de süreyi hesaplamaktır. Hangi aşamada ne kadar zaman geçmektedir ve o zamana bağlı olarak gerekirse algoritmanızı değiştirmeniz gerekebilmektedir.
Bugüne kadar hep değişkenler oluşturduk ve onların değerlerini değiştirerek programlar yazdık. Yani yazdığımız kod belleğe hunharca yüklendi. Her oluşturduğumuz değişken bellekte yeni bir birimi işgal etti ve biz…
Go da sabah akşam haşır neşir olduğunuz struct ları json ile çözümlemeniz gerektiğinde buradaki kodlar yaranıza derman olur.
JSON‘lar artık çok yaygın olarak kullanılan bir yapı. XML ve benzeri bütün yapıların yerine geçmek üzere. Özellikle de MongoDB gibi döküman tabanlı database’lerinde JSON formatı yapıları kullanması aynı zamanda artık…
Burada json u uzun uzadıya anlatmaya gerek yok. Onu başka bir yazı da ele alacağım. Go da json formatlama işlemlerine ve hele birde bunu struct lar ile yapmamız…
Map i yazdımak istediğimizde https://play.golang.org/p/eKGfZMPZ-V
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
package main import "fmt" func main() { a := map[string]int{"alierbey":80,"sadık":82} fmt.Println(a) } |
Çıktısı ;
1 2 3 4 5 |
map[sadık:82 alierbey:80] |
bu şekilde olacaktır. Bu map den json formatında çıktı almak istediğimizde ; ilk önce encoding/json library sini import ediyoruz….
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
package main import "fmt" import "strings" func main() { k := []string{"ali","erbey"} a := strings.Join(k , "-") fmt.Println(a) } |
Join fonksiyonu karakter eklemek için kullanılır. “ali” ve “erbey” den oluşan bir k dizisi elemanları arasına – işareti koymak istersek join fonksiyonunu kullanıyoruz. Çıktısı ;
1 2 3 4 5 |
ali-erbey |
https://play.golang.org/p/c-hkK99paP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
package main import "fmt" import "strings" func main() { a := strings.Repeat("alierbey", 5) fmt.Println(a) } |
Repeat fonksiyonu tekrar için kullanılır. Bu fonksiyon bugüne kadar işime yaramadı, ama ne olur olmaz lazım olur. Çıktısı;
1 2 3 4 5 |
alierbeyalierbeyalierbeyalierbeyalierbey |
https://play.golang.org/p/sIOqDtIFnn
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
package main import "fmt" import "strings" func main() { a := strings.ToUpper("alierbey") fmt.Println(a) b := strings.ToLower("ALİERBEY") fmt.Println(b) } |
Çok söze gerek var mı ? ToUpper Karakterleri büyültür ToLower küçültür. Çıktısı da;
1 2 3 4 5 6 |
ALIERBEY alierbey |
https://play.golang.org/p/trRqTF96q5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
package main import "fmt" import "strings" func main() { k := strings.HasSuffix("alierbey", "bey") fmt.Println(k) a := strings.HasSuffix("alierbey", "er") fmt.Println(a) } |
Suffix son ek demek ve bu fonksiyonumuzda string in sonunu bizim verdiğimiz string ile karşılaştırır ve true ya da false olarak döner. Bu kod da ilk karşılaştırmada…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
package main import "fmt" import "strings" func main() { k := strings.HasPrefix("alierbey", "ali") fmt.Println(k) a := strings.HasPrefix("alierbey", "bey") fmt.Println(a) } |
Biliyorsunu ki prefix ön ek demek. HasPrefix fonksiyonu da bizim string imiz belirttiğimiz karakterlerle başlıyor mu ona bakıyor. Bu kodda alierbey’i ilk kontrol ettiğimizde ali karakteri ile…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
package main import "fmt" import "strings" func main() { k := strings.Index("alierbey", "e") fmt.Println(k) a := strings.Index("alierbey", "a") fmt.Println(a) } |
Index fonksiyonu aradığımız karakterin index numarasını verir. Bu kodun çıktısını ilk önce yazayım ;
1 2 3 4 5 6 |
3 0 |
Gördüğünüz gibi e karakterinin index numarası 3 ve a karakterinin index numarası…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
package main import "fmt" import "strings" func main() { k := strings.Replace("alierbey", "e","o",1) fmt.Println(k) a := strings.Replace("alierbey", "e","o",-1) fmt.Println(a) } |
Replace fonskiyonu adından da anlaşılacağı üzerine yer değiştirme işlemi yapar. Burada “alierbey” string i içinde “e” karakterini “o” ile değiştireceğimizi belirtiyoruz. En sondaki 1 ve -1 ise…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package main import "fmt" import "strings" func main() { k := strings.Count("alierbey", "a") fmt.Println(k) a := strings.Count("alierbey", "e") fmt.Println(a) } |
Strings Count fonksiyonu aradığımız karakterin kaç tane olduğunu döner. Yukarıda alierbey string inin içinde a karakteri arıyoruz ve bize 1 tane olduğu için 1 dönüyor, e karakterini…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package main import "fmt" import "strings" func main() { k := strings.Contains("alierbey", "bey") fmt.Println(k) a := strings.Contains("alierbey", "usak") fmt.Println(a) } |
Şimdi contains fonksiyonu, elimizdeki bir string, aradığımız bir string i içeriyor mu içermiyor mu bunu boolean olarak döner. Yukardaki kod da string imizi alierbey ve bu string…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package main import "fmt" import "strings" func main() { deneme := "ali erbey usak universitesi" k := strings.Split(deneme, " ") fmt.Println(k) fmt.Println(k[0]) } |
Go da elimizdeki bir text i ayırmak split etmek istiyorsak öncelikle import “strings ” diyerek o library i projemize dahil ediyoruz. daha sonra text imiz hangi karakterlerden…
Veritabanları ile çalışmazsak olmaz dimi. Zaten ülkemizde yazılımcıların çoğu zaman yaptığı iş veri kaydedip okumak değil mi ? 🙂 Deli gibi program yazdığını düşünen arkadaşların bundan ötesini yapmadığını…
Programınızın çalıştığı klasörde bir dosya ile çalışmak istiyorsanız programınızın çalıştığı yol çoğu zaman gerekli olmuştur döyle durumlar için aşağıdaki kod çalıştığınız klasörü verir.
1 2 3 4 5 6 7 8 9 10 11 12 |
func GetAppPath() string { dir, err := filepath.Abs(filepath.Dir(os.Args[0])) if err != nil { log.Fatal(err) } fmt.Println(dir) return dir } |
bu fonksiyonu çalıştırdığınız zaman…
Program yazmaya başladıktan bir süre sonra bir bakarsınız integer bir değeri ekrana basmak için string’e dönüştürmek yada json’dan aldığınız string bir değeri integer’a dönüştürmek zorunda kalabilirsiniz. Bu ve…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
package main import "fmt" func main() { var a string = "ali erbey" fmt.Println(a) var b, c int = 12, 23 fmt.Println(b, c) var d = true fmt.Println(d) var e bool fmt.Println(e) var f int fmt.Println(f) k := "short" fmt.Println(k) } |
Bir programlama dili öğrenmeye karar verdiysek ve ilk adımı atmak istiyorsak, tabii ki yazılımın dünyasının klişeleşmiş bir başlangıç yöntemi olan hello world’ü ekranımıza yazdırmalıyız. Neden böyle bir başlangıç…