type ResultRow struct {
  StreamId int    `json:"stream_id"`
  DateTime string `json:"date_time"`
  RawDataSensorsItems
}
type RawDataSensorsItems struct {
  AKey    string `json:"a_key"`
  BKey    int    `json:"b_key"`
  SensorA *int    `json:"sensor_a"`
  SensorB *int    `json:"sensor_b"`
  SensorC *int    `json:"sensor_c"`
  SensorD *int    `json:"sensor_d"`
  SensorE *int    `json:"sensor_e"`
  SensorF *int    `json:"sensor_f"`
}result = append(
        result,
        ResultRow{
                StreamId: row.StreamId,
                DateTime: row.DateTime,
                RawDataSensorsItems: rowS,
        })
)for _, row := range packet {
    for _, rowS := range row.Sensors {
        result = append(
                result,
                ResultRow{
                        StreamId: row.StreamId,
                        DateTime: row.DateTime,
                        RawDataSensorsItems: rowS,
                })
    }
}package main
import (
	"encoding/json"
	"io/ioutil"
)
func main() {
	raw, err := ioutil.ReadFile("./data/raw.json")
	PanicIfErr(err)
	var packet DataPacket
	var result ResultPacket
	err = json.Unmarshal(raw, &packet)
	PanicIfErr(err)
	for _, row := range packet {
		for _, rowS := range row.Sensors {
			result = append(
				result,
				ResultRow{
					StreamId:            row.StreamId,
					DateTime:            row.DateTime,
					RawDataSensorsItems: rowS,
				})
		}
	}
	content, err := json.Marshal(result)
	PanicIfErr(err)
	err = ioutil.WriteFile("./data/output.json", content, 0644)
	PanicIfErr(err)
}
func PanicIfErr(err error) {
	if err != nil {
		panic(err)
	}
}
type ResultPacket []ResultRow
type ResultRow struct {
	StreamId int    `json:"stream_id"`
	DateTime string `json:"date_time"`
	RawDataSensorsItems
}
type RawDataSensorsItems struct {
	AKey    string `json:"a_key"`
	BKey    int    `json:"b_key"`
	SensorA *int   `json:"sensor_a"`
	SensorB *int   `json:"sensor_b"`
	SensorC *int   `json:"sensor_c"`
	SensorD *int   `json:"sensor_d"`
	SensorE *int   `json:"sensor_e"`
	SensorF *int   `json:"sensor_f"`
}
type RawDataRow struct {
	StreamId int                   `json:"stream_id"`
	DateTime string                `json:"date_time"`
	Sensors  []RawDataSensorsItems `json:"sensors"`
}
type DataPacket []RawDataRowpackage main
import (
	"fmt"
)
func main() {
	type KV struct {
		Name  string
		Value int
	}
	data := []KV{
		{
			Name:  "width",
			Value: 100,
		},
		{
			Name:  "height",
			Value: 300,
		},
	}
	result := make(map[string]int)
	// reduce
	for _, v := range data {
		result[v.Name] = v.Value
	}
	fmt.Printf("%#v", result) // map[string]int{"width":100, "height":300}
}package main
import (
	"fmt"
)
func main() {
	type KV struct {
		Name  string
		Value interface{}
	}
	data := []KV{
		{
			Name:  "width",
			Value: 100,
		},
		{
			Name:  "height",
			Value: 300,
		},
		{
			Name:  "image",
			Value: "cat.jpg",
		},
	}
	result := make(map[string]interface{})
	for _, v := range data {
		result[v.Name] = v.Value
	}
	fmt.Printf("%#v", result) // map[string]interface {}{"width":100, "height":300, "image":"cat.jpg"}
}length := 7
slice := make([]int, length)audioUpload := tgbotapi.NewAudioUpload(update.Message.Chat.ID, ...)
audioUpload.ReplyMarkup = update.Message.MessageID
_, err := bot.Send(audioUpload)file, err := os.Open("audio.mp3")
		if err != nil {
			panic(err)
		}
		defer file.Close()
		audioUpload := tgbotapi.NewAudioUpload(update.Message.Chat.ID, tgbotapi.FileReader{
			Name:   "audio.mp3",
			Reader: file,
			Size:   -1, // If Size is -1, it will read the entire Reader into memory to calculate a Size.
		})
		audioUpload.ReplyToMessageID = update.Message.MessageID
		_, err := bot.Send(audioUpload)
		if err != nil {
			panic(err)
		}package main
import (
	"log"
	"github.com/davecgh/go-spew/spew"
	"github.com/go-telegram-bot-api/telegram-bot-api"
)
func main() {
	// подключаемся к боту с помощью токена
	bot, err := tgbotapi.NewBotAPI("ТОКЕН")
	if err != nil {
		log.Panic(err)
	}
	bot.Debug = true
	log.Printf("Authorized on account %s", bot.Self.UserName)
	// инициализируем канал, куда будут прилетать обновления от API
	u := tgbotapi.NewUpdate(0)
	u.Timeout = 60
	updates, err := bot.GetUpdatesChan(u)
	if err != nil {
		log.Fatal(err)
	}
	// читаем обновления из канала
	for update := range updates {
		switch {
		case update.Message != nil: // Если было прислано сообщение, то обрабатываем, так как могут приходить не только сообщения.
			OnMessage(bot, update.Message)
		}
	}
}
func OnMessage(bot *tgbotapi.BotAPI, message *tgbotapi.Message) {
	// Пользователь, который написал боту
	userName := message.From.UserName
	// ID чата/диалога.
	// Может быть идентификатором как чата с пользователем
	// (тогда он равен UserID) так и публичного чата/канала
	chatID := message.Chat.ID
	log.Printf("[%s] %d", userName, chatID)
	spew.Dump(message) // выводим то что пришло (Для отладки!!!)
	var msg tgbotapi.Chattable
	switch {
	case message.Text != "": // Текстовое ли сообщение?
		msg = tgbotapi.NewMessage(chatID, message.Text)
	case message.Photo != nil: // Это фото?
		photoArray := *message.Photo
		photoLastIndex := len(photoArray) - 1
		photo := photoArray[photoLastIndex] // Получаем последний элемент массива (самую большую картинку)
		msg = tgbotapi.NewPhotoShare(chatID, photo.FileID)
	default:                                                 // Если не одно условие не сработало
		msg = tgbotapi.NewMessage(chatID, "Не реализовано") // Отправляется на тот тип сообщения, который ещё не реализован выше ^
	}
	// и отправляем его
	_, err := bot.Send(msg)
	if err != nil {
		log.Println(err)
	}
}client := http.DefaultClient
	form := url.Values{
		"LoginForm[username]": []string{"user"},
		"LoginForm[password]": []string{"pass"},
	}
	response, err := client.Post("http://httpbin.org/post", "application/x-www-form-urlencoded", strings.NewReader(form.Encode()))
	if err != nil {
		panic(err)
	}
	defer response.Body.Close()
	b, err := ioutil.ReadAll(response.Body)
	if err != nil {
		panic(err)
	}
	println(string(b))git init && git commit --allow-empty -m "Initial commit"git submodule add -b master git@github.com:<USERNAME>/<USERNAME>.github.io.git dist# Build the project.
yarn build
# npm run build
# Go To dist folder
cd dist
# Add changes to git.
git add .
# Commit changes.
git commit -m "rebuilding site $(date)"
# Push source and build repos.
git push origin master[a-zA-Z]+_[a-zA-Z]+$re = '/[a-zA-Z]+_[a-zA-Z]+/';
$str = 'Name_Surname
qwwer_asdasd';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);$ dig core.telegram.org
...
;; ANSWER SECTION:
core.telegram.org.	600	IN	A	149.154.167.99
...