vak: (Бодхидхарма)
[personal profile] vak
Не нужен нам берег язык турецкий. Давайте программировать на финском, из уважения к Линусу. Прикинем, как бы оно смотрелось. В примерах слева традиционный Golang, справа - Suomi-Go.

Пример Hello World.
package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}
paketti pää

tuonti "muotoilu"

funktio pää() {
    muotoilu.Tulostarivi("Hei, maailma!")
}
Переменные и условные операторы.
var x int = 5
const pi float64 = 3.14

if x > 0 {
    println("Positive")
} else {
    println("Negative")
}
muuttuja x kokonaisluku = 5
vakio pi liukuluku = 3.14

jos x > 0 {
    tulostarivi("Positiivinen")
} muuten {
    tulostarivi("Negatiivinen")
}
Циклы и диапазоны.
for i := 0; i < 5; i++ {
    println(i)
}

nums := []int{1, 2, 3}
for _, num := range nums {
    println(num)
}
silmukka i := 0; i < 5; i++ {
    tulostarivi(i)
}

luvut := []kokonaisluku{1, 2, 3}
silmukka _, luku := alue luvut {
    tulostarivi(luku)
}
Структуры и функции.
type Person struct {
    Name string
    Age int
}

func calculateAge(p Person) int {
    return p.Age
}
tyyppi Henkilo rakenne {
    Nimi merkkijono
    Ika kokonaisluku
}

funktio laskeIka(h Henkilo) kokonaisluku {
    palauta h.Ika
}
Оператор выбора.
switch day {
case "Monday":
    println("Start of the week")
default:
    println("Other day")
}
vaihda päivä {
tapaus "maanantai":
    tulostarivi("Alkuviikko")
oletus:
    tulostarivi("Muu päivä")
}
Горутины и каналы.
ch := make(chan int)
go func() {
    ch <- 42
}()
val := <-ch
k := tee(kanava kokonaisluku)
mene funktio() {
    k <- 42
}()
arvo := <-k

Мне особенно понравилась "kanava kokonaisluku" - chan int по нашему.