golang book 5
for
continue
break
package main
import (
"bufio"
"fmt"
"log"
"math/rand"
"os"
"strconv"
"strings"
"time"
)
func main() {
fmt.Println("Угадай число от 1 до 100")
rand.Seed(time.Now().Unix())
var target int = rand.Intn(100) + 1
win := false
for i := 10; i >= 0; i-- {
reader := bufio.NewReader(os.Stdin)
input, err := reader.ReadString('\n')
if err != nil {
log.Fatal(err)
}
input = strings.TrimSpace(input)
num1, err := strconv.Atoi(input)
if err != nil {
log.Fatal(err)
}
if num1 > target {
fmt.Println("загаданное число мень>
continue
}
if num1 < target {
fmt.Println("загаданное число боль>
continue
}
win = true
break
}
if win {
fmt.Println("Победа")
} else {
fmt.Println("Провал, число было ", target)
}
}
Красивый вывод
fmt.Printf("About: %0.2f p", 1.0/3.0)
А тут возврат в строку
str := fmt.Sprintf("About: %0.2f p", 1.0/3.0)
fmt.Printf("About: %s = %d \n", "aaa", 5)
fmt.Printf("About: %f p \n", 3.0)
буква после % определяет тип глагола
%f числ с точк
%d число
%s строка
%t булево true или false
%v что угодно
%#v тут энтеры и табы не преобразуются \n
%T сам тип значения int, string
%% знак процента
%12s
%2d это минимальная длина, если текст меньше, то в начале он дополнится пробелами
%5.3f
5 - минимальная ширина всего числа (дробн часть и точк)
3 - ширина дробной части
%.3f да так тоже сработает
функции
func say() {}
say() вызов
после обьявления функции ее можно будет вызывать
если функция должна использ только внутри, то начинай ее с мелкой буквы