tinygo/src/examples/hello/hello.go
2018-04-19 20:33:10 +02:00

70 строки
1 КиБ
Go

package main
type Thing struct {
name string
}
func (t Thing) String() string {
return t.name
}
const SIX = 6
func main() {
println("Hello world from Go!")
println("The answer is:", calculateAnswer())
println("5 ** 2 =", square(5))
println("3 + 12 =", add(3, 12))
println("fib(11) =", fib(11))
println("sumrange(100) =", sumrange(100))
println("strlen foo:", strlen("foo"))
thing := Thing{"foo"}
println("thing:", thing.String())
printItf(5)
printItf(byte('x'))
}
func strlen(s string) int {
return len(s)
}
func printItf(val interface{}) {
switch val := val.(type) {
case int:
println("is int:", val)
case byte:
println("is byte:", val)
default:
println("is ?")
}
}
func calculateAnswer() int {
seven := 7
return SIX * seven
}
func square(n int) int {
return n * n
}
func add(a, b int) int {
return a + b
}
func fib(n int) int {
if n <= 2 {
return 1
}
return fib(n - 1) + fib(n - 2)
}
func sumrange(n int) int {
sum := 0
for i := 1; i <= n; i++ {
sum += i
}
return sum
}