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)
}
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İ
Golangde 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)
}