Turkish Golang Tutorial Guide #4 : Functions and Strings
Hi everyone, this is a Turkish tutorial content about Golang (Go) programming language. It will be a contet serial abut this language. This post will be about functions and strings. So, thank you for reading!
- Check this Turkish Golang Tutorial Guide #3 : Loops
Fonksiyonlar
Fonksiyonları tanımlayacak olursak; bir grup işlemi gerçekleştiren, yazılımı hız -bellek-enerji yönünde tasarruflu bir hale getiren emirler bütünüdür diyebiliriz sanırım. Her programlama dili kendi içerisinde fonsiyon bulundurur mutlaka. Hatta fonksiyonel programlama diye bir kategori dahi vardır ve gündelik hayatta kullandığımız bir çok yazılım bu kategorideki programlama dilleri ile modüler bir şekilde yazılıp oluşturulmaktadır. Fonksiyonların temel olayı bu zaten, organizasyonu modüllere yani daha küçük ve işlevsel parçalara bölüp görev dağılımı yapmamızı sağlamak.
func function_name( [parameter list] ) [return_types]
{
body of the function
}
Bir fonksiyonun gövdesini veya şablonunu bu şekilde gösterebiliriz. Kendine has bir adı, aldığı parametreler, geri döndürdüğü parametreler ve yaptığı spesifik işlemler vardır.

Misal bu örnekte oluşturduğumuz max fonksiyonu ile iki sayıdan büyük olanını bulabiliyoruz. Yazacağımız daha büyük bir yazılım projesinde iki sayıdan büyük olanı bulmamız gerektiğinde direk max fonksiyonunu çağırarak bu işi bizim yerimize defalarca yapmasını sağlayabiliriz. Sanırım bu noktada yazılımlar günümüzün dijital köleleri oluyorlar. (Sonra neden SKYNET isyan etti!)
Oluşturduğumuz bu prototip fonksiyonu çalışan bir örnek içinde kullandığımızda ise gördüğünüz gibi önce iki değişken oluşturup ona değerler atıyoruz ardından ise fonksiyonumuzu çağırıyoruz. Evet şimdi bir sonraki adım olarak yazdığımız bu kodun çıktısında bize verilen görevi gerçekleştiriyoruz.
Go dili aslında fonksiyonların birden çok değer döndürmesine olanak tanıyan bir yapıya sahip. Evet doğru okudun, bir fonksiyondan birden fazla değer döndürmek mümkündür. Örneğin Bir dikdörtgenin uzunluğunu ve genişliğini alır ve dikdörtgenin hem alanını ve çevresini döndüren bir fonksiyon yazabiliriz.
func multi(x, y int) (int, int) { Burada gördüğünüz gibi dikdörtgenin alanını hesaplamak için area ve perimeter adlı iki değişken oluşturup onlar için gerekli aritmetik işlemleri yaptıktan sonra fonskiyonda return yaparken bu iki değişkeni birden geri döndürdük. Dolayısı ile çıktımız şöyle oldu: Area 50 Perimeter 30 String aslında bir byte dilimi, veri tipidir, tıpkı integer ve float gibi. Fakat onlardan farklı olarak sayısal bir değere değil de bir karakter/string değerine sahiptir, şeklinde bir kod yazıp çalıştırdığımızda; şeklinde bir çıktı alırız. Bu arada eğer bir string'in uzunluğunu merak ediyorsak, yani kaç karakterden oluştuğunu öğrenmek istiyorsak len(str) metodunu kullanmamız yeterli olacaktır. Bununla ilgili örneğimiz ise şöyle olabilir mesela; Bir stringin her bir karakterini ayrı ayrı çıktı olarak verebiliriz. Bunu o stringi parçalayıp bir for döngüsünün içine koyarak yapabiliriz. Bunu range ile yaparız ve stringin içindeki her bir karakterin hangi byte dan geldiğini de görmüş oluruz. func printChars(s string) { Bu programın çıktısı ise şu şekilde olur; W starts at byte 0 Ve son örneğimizde stringler ve fonksiyonlar konusunu birleştiren ortak bir örnek ile, birden çok string değeri döndüren bir fonksiyon yazalım.
package main
import "fmt"
var area = x * y
var perimeter = (y + x) * 2
return area, perimeter
}
func main() {
area, perimeter := multi(10, 5)
fmt.Printf("Area %d Perimeter %d", area, perimeter)
}
String'ler
var mono = "Hello Utopian!" gibi. Bunun için daha geniş bir örnek vermek gerekirse;normal string: Hello Utopian!
hex bytes: 48 65 6c 6c 6f 20 55 74 6f 70 69 61 6e 21
quoted string: "\xbd\xb2=\xbc \u2318"
package main
import "fmt"
for index, m := range s {
fmt.Printf("%c starts at byte %d\n", m, index)
}
}
func main() {
name := "WORK WİTH MONOMYTH"
printChars(name)
}
O starts at byte 1
R starts at byte 2
K starts at byte 3
starts at byte 4
W starts at byte 5
İ starts at byte 6
T starts at byte 8
H starts at byte 9
starts at byte 10
M starts at byte 11
O starts at byte 12
N starts at byte 13
O starts at byte 14
M starts at byte 15
Y starts at byte 16
T starts at byte 17
H starts at byte 18
Posted on Utopian.io - Rewarding Open Source Contributors




@monomtyh ben geldim pornolarda yolda @damla @fitch kimse cevap vermiyor arttık kimse kusura bakmayacak toprağım @eser piçi bulunana kadar porno kolleksiyonu yaptıracağım millete.... sen ikaz et istersen beni dinleyen yok çünkü :(
güzel
Your contribution cannot be approved yet because it is not as informative as other contributions. See the Utopian Rules. Please edit your contribution an try to improve the length and detail of your contribution.
Example:
You can contact us on Discord.
[utopian-moderator]
Edited as I can.
Give '0' SDB monomyth :D , güzel yazı olmuş teşekkürler
Eyv :d
Gayet güzel anlatıyorsun. Devam dostum...
Teşekkürler :)
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Hey @monomyth I am @utopian-io. I have just upvoted you!
Achievements
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x