BLOG BLOG

Monthly March 2017
Go Hata Kodu Killed 9

Mac os üzerinde go yu derlediniz sorunla karşılamadınız fakat çalıştırdığınız zaman Killed 9 diye bir hata mı aldınız ?

bunun için yapmanız gereken şey build ederken şu şekilde build etmek.

Sonra yiyor…

go build -ldflags -s $GOPATH/src/main.go

tabi burada dosya yolunuz farklı olabilir onu siz ayarlarsınız artık. Önemli olan

-ldflags -s

bunları koymak.

Golang – Map

İkili değerleri tutmamıza yarayan yapılardır. Değerleri
anahtar – değer (key – values)
şeklinde tutmakta ve dizilerde kullandığımız index değer artık tanımlamış olduğumuz anahtar değer olmaktadır.

Mapler daha önce programlama dilleri ile uğraşanlar varsa kolaylıkla anlayabilecekleri dilden anlatmak gerekirse direk dictionary demektir.

Mapleri iki farklı şekilde tanımlayabiliriz.

Birincisi değerlerini başlangıçta vermediğimiz şekliyle;

a := make(map[string]int)

a değişkeni burada map’dir.

Bir diğeri ise;

a := map[string]int{"ali": 76, "veli": 22}

Her iki a değişkeni de map olup yazdırdığımızda karşımıza

package main

import "fmt"

func main() {
	a := make(map[string]int)
   	fmt.Println(a)
	
	b := map[string]int{"ali": 76, "veli": 22} 
	mt.Println(b)
}

Çıktısı;

map[]
map[veli:22 ali:76]

https://play.golang.org/p/WHIt_4_KRjT
bu şekildedir.

Golang – For Döngüsü

Go Programlama dilinde genelde klasik programlama dilinde görülen for, while, do-while döngüleri, yerini sadece for döngüsüne bırakmıştır. Yazılımlarımızı sadece for döngüsü ile yapabileceğimiz şekilde for döngüsünü özelleştirmişlerdir.

Zaten yazılımcıların alışkanlıklarına da baktığımızda sadece bir döngü türünü benimseyip devamlı onu kullanma eğilimdedir. Aynı şeyi if else – switch tercihinde de yaşarız. Tabii ki bunların kullanılıp kullanılmayacağı yerler var ama her ikisi de kullanıyorsa eğer ilk önce ellerimiz tercih ettiğimiz yazmak isteyecektir.

Yani sonuç olarak. Ya for ‘cular ya da whilec ‘cılar vardır.(ford cular değil yalnız yanlış okumayınız :)). Ve for‘la yapabildiğiniz bir döngüyü while, while ile yapabildiğiniz bir döngüyü for ile yapabilirsiniz. Bu yüzden go programlama dili gereksiz bütün ayrıntılardan kurtulmak adına sadece for döngülerini kullanmaktadır. Kullanımlarına baktığımızda zaten içinde while‘ı da barındırdığını göreceğiz.

Üç kullanım şekli vardır;

For Döngüsü (While Benzeri)

package main
import "fmt"

func main() {
            i := 1

            for i<10 {
            fmt.Println(i)
            i = i + 1    
            }
}

Diğer programlama dillerini bilenler için gördüğünüz üzere while döngüsünden bir farkı bulunmamaktadır.

İlk defa programlama dili öğrenenler için ise;

i ‘nin değişkeninin değerini 1 olarak tanımladık. for yazdıktan sonra hemen yanına koşulunu belirtiyoruz. Bu koşul ise i<10  dur. Ve bu koşul doğrulandığı müddetçe döngü devam edecektir. i , 10′ a eşit  olduğu anda ise döngü sonlanacaktır.

Döngü içinde ise  i = i + 1 diyerek i ‘ yi her seferinde 1 artırıyoruz.

Döngülerde yer alması gereken başlangıç değeri, bitiş değeri ve artış miktarını bu döngüde sağladık. Klasik olarak yazılan for döngüsünde, bunu tek satırda belirtirken burada 3 satırda yazdık

For Döngüsü (Klasik Kullanım)

package main
import "fmt"

func main() {
      for i := 1; i < 10 ; i ++ {
         fmt.Println(i)
      }
}

yukarda kullanılan for döngüsü ile ik döngü arasında fark yoktur. Burada

i := 1

değeri ile i yi tanımlamış olduk.  i < 10 ile bitiş değerini belirttik ve i++ ile artış miktarını belirttik.

Sonsuz Döngü

For döngüsünün son yazım şekli ise sonsuz döngüdür;

package main
import "fmt"

func main() {
      for {
         fmt.Println(“merhaba”)
         break
      }
}

Sonsuz döngüden çıkma deyimi ise break’ dir. Bu döngü bir defa çalışacaktır. Eğer break keyword’ü olmasaydı sonsuz çalışcaktı.

Sully

Uzun zamandır yazmak istiyordum Sully hakkında bir şeyler. Hatta başladım ama taslaklara attım. Bu film için bu kadar çok yazma isteğinde olmamın nedenlerinden bir true story olması elbette.

Vikings

Aslında birçok yapım tek ana karakter üzerine kurulu olmasına ragmen karakterlerin sahnede olmadıgı zamanlarda bile dizinin veya filmin biraz gideri vardır. Ama Vikings’de hiç gideri yokmus.