GOLANG Ders 3

11 Nis 2020
90
0
DOMANİÇ


GOLANG DERS3

GO OPERATÖRLER

Go da diğer diller gibi operatöler aynı oludugu için başka bir dil bilen bir kişi hızlıca bu konuyu kavrıyacağını düşünüyorum.Hemen hızlıca temel bir kod örneği koyacağım:

Kod:
package main 

func main() { 

//Operatörler 

a := 10 

b := 20 

total := a + b 

println(total) 

total = a - 5 

println(total) 

total = b * 10 

println(total) 

total = b / 5 

println(total) 

total = a % b 

println(total) 

total++ 

println(total) 

total-- 

println(total) 

}

GO BOŞ TANIMLAYICI: ALT ÇİZGİ_

Go dilinde değişken tanımlamlamarı kullanmamız gerekir eğer tanımlayıp o değişkeni kullanmazsak eğer IDE size uyarı vericektir bu yüzden boş tanımlayıcı gerekmiştir.Kısaca böyle anlatabilirim sanırım.Alta sizin için örnek verdim


Kod:
package main 

import "fmt" 

func main() { 

//Boş Tanımlayıcı (_) 

//var _ string = "dasda " // alt çizgi(_) tanımlamak mümkün ama gidip yazdıramazsınız 

//fmt.Println(_) 

var _, x, _ int = 9, 0, 9 // alt çizgi koyarak tanımladınız ve aradada x değeri verdik ama ekrana sadece x'i yazdırabildik bunun sebebi alt çizginin sadece yer tutucu olmasından kaynaklı 

fmt.Println(x) 

}



GO CONSTANT : SABİTLER


Ders 2 de bunun ile ilgili örnek yapmıştım bu biraz daha detaylı bir örnek oldu ana fonksiyonun dışınca const ile sabir bir veri tutabiliriz örneği incelerseniz daha detaylı bilgiye sahip olabilirsiniz.

Kod:
package main 

import "fmt" 

//const tht = "Turk Hack Team" 

//const arge = "Turk Hack Team Arge Timi" 

type Brand string 

const ( 

face Brand = "Facebook" 

insta Brand = "İnstagram" 

twitter Brand = "Twitter" 

) 

func PrintBrand(brand Brand) { 

fmt.Println(brand) 

} 

func main() { 

//CONSTANT 

//tht="Türk Hack Team " diyerek burada tekrar tanımlama yapamayız içerik değiştirelemez 

//fmt.Println(tht, arge) 

PrintBrand(face) 

}
GO TÜR DEĞİŞİMİ

Burada bir string değer integera veya integar değeri floata float değeri uintegera çevirme gibi şeyleri anlatmaya çalıştım arkaşdaşalar en güzel anlama yöntemi kendin yazmaktır o yüzden lütfen kodları deneyin.
Kod:
package main 

import "fmt" 

func main() { 

//TÜR DEĞİŞİMİ 

/* 

var mystring string = "1" 

var x = 10 

var f float32 = 2.0 

fmt.Println(mystring, x, f) 

// stringden inte dönüştürme 

number, _ := strconv.Atoi(mystring) 

fmt.Println(number) 

result := number + 2 

fmt.Println(result) 

fmt.Println("Sonuç: " + strconv.Itoa(number)) // pythonda oldugu gibi + number yazarak çıktı alamıyoruz çıktı alamk için bu şekilde kullanmamız gerekiyor 

*/ 

//CASTING 

var i int = 10 

//var f1 float64 = i // teknik olarak veri kaybı olmaz ve hata olmaz ama bunun tersini yapmanıza izin vermez 

var f float64 = float64(i) 

var u uint = uint(f) // sinyansil integer 

fmt.Println(i) 

fmt.Println(f) 

fmt.Println(u) 

}



GO SAAT VE ZAMAN İŞLEMLERİ


Golang’de diğer dillerle oldukça benzer ve basit bir yapısı var diyecek çok fazla bir şey yok detayları görmek için kodu inceleyebilirsiniz.

Kod:
package main 

import ( 

"fmt" 

"time" 

) 

func main() { 

t := time.Date(2020, time.November, 10, 20, 0, 0, 0, time.UTC) // ilk boşluk yılı ,ay,gün,saat,dakika,saniye ve zaman diilimi şeklinde 

fmt.Println(t) 

now := time.Now() 

fmt.Println(now) 

fmt.Println(t.Year()) 

fmt.Println(t.Month()) 

fmt.Println(t.Day()) 

fmt.Println(t.Clock()) 

}


GO KONSOL GİRİŞ İŞLEMLERİ

Arkadaşlar golang verileri string olarak alır bunun için bufio kütüphanesini kullanır.Eğer integer float değer almak istersek üste anlattım tarzda veri dönüşümü yapıp erkrana yazdırabiliriz.Trimspcace ile string olarak girilen verinin sağında ve solunda boşluk varsa bunları sile ve integer verileri dönüştürmemizi kolaylaştırır.Kod örneğini vereyim hemen:

Kod:
package main 

import ( 

"bufio" 

"fmt" 

"os" 

"strconv" 

"strings" 

) 

func main() { 

// string veri girişi 

reader := bufio.NewReader(os.Stdin) 

fmt.Println("İsim : ") 

str, _ := reader.ReadString('\n') 

fmt.Println(str) 

// veri string olarak gelir ve siz istediğiniz türe dönüştürebilirsiniz 

fmt.Print("Numara Girin") 

str, _ = reader.ReadString('\n') 

f, _ := strconv.ParseFloat(strings.TrimSpace(str), 64) // TrimSpace strin ifadenin sağında solunca boşluk varsa onları siler 

fmt.Print(f) 

}
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.