
Андрей
21.04.2016
21:18:54
трешово как-то
fmt.Println("32132 × 42452 =", 32132*42452, 1+1)
перед выведенной 2 тоже пробел
как бороться?

[Anonymous]
21.04.2016
21:18:57
Есть еще Прата с С11
Кстати завтра книга по го будет в продаже
На русском

Google

Phil
21.04.2016
21:19:34
?

[Anonymous]
21.04.2016
21:20:14
?
http://www.ozon.ru/context/detail/id/34671680/

Андрей
21.04.2016
21:23:35
А у го есть аля rvm, stack (или как там у хасклеров?) или nmp?

Igor ⛷
21.04.2016
21:24:33

Андрей
21.04.2016
21:24:55
спс
golang-bundle
тут что аля Rubygem файлы?

Igor ⛷
21.04.2016
21:26:04
таким обычно пользуюсь https://github.com/pote/gpm + https://github.com/pote/gvp


Maxim
21.04.2016
21:46:03
Блин, что с Gin не так?
Запилил простой обработчик загрузки файла, сделал форму, при загрузке фатал эрроры упирающиеся в переменную.
package main
import (
"github.com/gin-gonic/gin"
"io"
"log"
"net/http"
"os"
)
func main() {
router := gin.Default()
router.LoadHTMLGlob("index.tpl.html")
router.GET("/", func(client *gin.Context) {
client.HTML(http.StatusOK, "index.tpl.html", gin.H{})
})
router.POST("/upload", func(client *gin.Context) {
file, header, err := client.Request.FormFile("upload")
filename := header.Filename
log.Println(filename)
out, err := os.Create("./files/" + filename)
if err != nil {
log.Fatalln(err)
}
defer out.Close()
_, err = io.Copy(out, file)
if err != nil {
log.Fatalln(err)
}
})
router.Run(":8080")
}
package main
import (
"github.com/gin-gonic/gin"
"io"
"log"
"net/http"
"os"
)
func main() {
router := gin.Default()
router.LoadHTMLGlob("index.tpl.html")
router.GET("/", func(client *gin.Context) {
client.HTML(http.StatusOK, "index.tpl.html", gin.H{})
})
router.POST("/upload", func(client *gin.Context) {
file, header, err := client.Request.FormFile("upload")
filename := header.Filename
log.Println(filename)
out, err := os.Create("./files/" + filename)
if err != nil {
log.Fatalln(err)
}
defer out.Close()
_, err = io.Copy(out, file)
if err != nil {
log.Fatalln(err)
}
})
router.Run(":8080")
}
Файла загруженного нет, Go ругается на строку:
filename := header.Filename


pl
21.04.2016
21:49:34
Че значит ругается?

Maxim
21.04.2016
21:51:08
Ой, боже, как телеграм скриншот сжал.

Google

pl
21.04.2016
21:52:48
header == null что ли?

Maxim
21.04.2016
21:53:19
Форма:
<form method="post" action="/upload" name="upload" enctype="multipart/form-data">
<input type="file">
<button type="submit" name="upload">Загрузить</button>
</form>

Kirill
21.04.2016
22:02:33
@toby3d а можно архивчик с сорцами проблемного примера, пожалуйста? или git репу

Maxim
21.04.2016
22:02:58
Моя бошка сейчас настолько не варит, что мне проще в архив всё запихнуть, чем пушить коммиты в реп на битбаките

Kirill
21.04.2016
22:04:58
ждем-с

[Anonymous]
21.04.2016
22:06:50
Что за тема стоит?

Maxim
21.04.2016
22:07:35
Что скажете? Я тупой или лыжи не едут?

Kirill
21.04.2016
22:11:06
у меня нэт медленный, я еще разворачиваюсь :)

Maxim
21.04.2016
22:11:49
Самое смешное что я почти всё в скрипте переписал с README.md к Gin.

Kirill
21.04.2016
22:13:20
депсы в эти 800 байт не входят
уже смотрю

Maxim
21.04.2016
22:13:29
Зависимости же, я забыл совсем.
Если косяк очевидный, то я лучше пойду спать. Это будет явным намёком на то, что - пора уже.

Kirill
21.04.2016
22:16:08
у тебя же и file, и header == nil

Google

Maxim
21.04.2016
22:16:32
И как это исправить?

Kirill
21.04.2016
22:16:43
сейчас посмотрю, минутку
эммм
а ты чего, хочешь загрузить кнопку?))
<button type="submit" name="upload">Загрузить</button>
name должен быть у файла)))

Maxim
21.04.2016
22:18:44
Бляяяяять
Погоди секунду, я чекну

Kirill
21.04.2016
22:19:08
и у формы нэйм должен отличаться))
у меня работает)

Maxim
21.04.2016
22:19:32
Сууууука
Спасибо, конечно, но я спать пойду, пожалуй.

Kirill
21.04.2016
22:19:52
? пора спать))

Maxim
21.04.2016
22:20:13
Все мозги высморкал за сегодня, похоже.

Kirill
21.04.2016
22:20:28
так ты это, смотрел log.Printf("%#+v", file)?
и с header тоже?

Maxim
21.04.2016
22:21:01

Kirill
21.04.2016
22:21:38
я сначала туда смотрю, это часто ответ дает :)

Maxim
21.04.2016
22:22:43
Я уже у себя поправил

Kirill
21.04.2016
22:22:51
ну, мало ли)

Google

Kirill
21.04.2016
22:23:10
таки, доброй ночи ?

Maxim
21.04.2016
22:23:26
Ага, спасибо большое. Снов всем.

Kirill
21.04.2016
22:23:41
да не за что)

Андрей
21.04.2016
22:43:39
Ок...у меня есть функция main...после нее есть другая...какзаставить ее тоже выполняться после main?

Kirill
21.04.2016
22:44:06
а можешь переформулировать? я не понял что конкретно ты хочешь сделать.

Андрей
21.04.2016
22:45:25
package main
import "fmt"
func main() {
fmt.Print("Enter number: ")
var input float64
fmt.Scanf("%f", &input)
output := input * 2
fmt.Println(output)
}
func cToF() {
fmt.Print("Enter celsius: ")
var c float64
fmt.Scanf("%f", &c)
var f float64
f = (c * 1.8) + 32
fmt.Println("Celsius:%f = Fahr:%f", c, f)
}

Admin
ERROR: S client not available

Андрей
21.04.2016
22:45:56
Хочу чтобы cToF тоже запускалось.

Kirill
21.04.2016
22:46:03
после - это после выполнения? не выйдет, main() - это основной тред программы, выходит main - выходит программа. хочешь - выполни в main() в конце свою функцию

Андрей
21.04.2016
22:46:07
(да наверняка говнокод)

Kirill
21.04.2016
22:46:43
ну, оценивать код ты не просил, ты просил подсказать как выполнить функцию после main()

Андрей
21.04.2016
22:47:38
Положить функцию cToF в блок main?

Kirill
21.04.2016
22:48:00
например. в той последовательности, в которой тебе нужно.

Андрей
21.04.2016
22:49:23
Это ясно, а если я захочу одинаковые имена переменых в каждой функции? Хочется разбитьлогично.
И еще не пойму почему маркеры не выводят переменные (переменные в конце строки выводятся)
fmt.Println("Celsius:%f = Fahr:%f", c, f)
Обе переменные float64.

Kirill
21.04.2016
22:54:41
тогда уж лучше вынести и то, и то в отдельные функции

Андрей
21.04.2016
22:57:11

Google

Андрей
21.04.2016
22:58:39
Хочу чтобы переменные (с и f) выводились в строке.

Kirill
21.04.2016
23:00:03
потому что Println() не принимает строки форматирования, их принимает Printf()
а если хочешь так Println() юзать - то придется быть индусом: fmt.Println(fmt.Sprintf("%f", c))

Андрей
21.04.2016
23:02:50
Спасибо. Приятно когдамогутпомочь с такой елементарщиной.

Kirill
21.04.2016
23:03:53
да ничего, я сам совсем недавно в этом всем разбирался, только об этом чатике я вообще не знал)

Андрей
21.04.2016
23:04:07
Как я вижу Printf() не пееносит строку сам?

Kirill
21.04.2016
23:04:23
нет, нужно добивать \n самому

Андрей
21.04.2016
23:05:47

Nik
21.04.2016
23:05:58
результат - стринг
можно в стринговую переменную печатать

Maxim
21.04.2016
23:06:17

Kirill
21.04.2016
23:06:20
Sprint возвращает отформатированную строку, вместо того, чтобы ее печатать

Андрей
21.04.2016
23:06:48

Kirill
21.04.2016
23:07:33
sprintf, то есть

Андрей
21.04.2016
23:08:03
Хм...хотел порезать ноли в флоат переменной...
fmt.Printf("Celsius:%f.2 = Fahr:%f.2\n", c, f)
Не вышло.

Kirill
21.04.2016
23:08:06

Maxim
21.04.2016
23:08:50
Всё ставлю телефон на трекинг сна и отключаюсь. Теперь точно.