func process_test_case(test_cases int, reader *bufio.Reader) {
fmt.Println("int number")
_, _ = reader.ReadString('\n')
fmt.Println("integers")
input, _ := reader.ReadString('\n')
input = strings.TrimRight(input, "\r\n")
arr := strings.Split(input, " ")
test_cases -= 1
if test_cases != 0 {
process_test_case(test_cases, reader)
}
fmt.Println("answer =", process_array(arr, 0))
}
func myFunc(arg type) type
...
bigArg = myFunc(bigArg)
go run main.go
. go run
-- это тестовые компиляция и запуск при эскизировании. Вам нужно сделать нормальный бинарник вашего сервера go build -o myserver main.go
или go install
. Полученный бинарник при включении системы можно запускать стандартными средствами -- юнитом systemd, записью cron или, самое простое, поместив команду в profilemyserver &
$ myserver &
domain.com/admin/shutdown
myserver --quit
который будет связываться с уже запущенным инстансом через net/rpc или unix pipe или unix socket или тот же http и вызывать процедуру тушенияMyOwnWriter := ResponseWriter(MyResponseWriter)
MyArgument := &MyOwnWriter
//и только потом
UsePointer(MyArgument)
type FReader struct {
reader io.Reader
filter func([]byte) (int, error)
}
func NewFReader(r io.Reader) *FReader {
return &FReader{r, func(p []byte) (int, error) { return len(p), nil }}
}
func (fr *FReader) Filter(filter func([]byte) (int, error)) *FReader {
return &FReader{fr, filter}
}
func (fr *FReader) Read(p []byte) (n int, err error) {
n, err = fr.reader.Read(p)
if err == nil && fr.filter != nil {
n, err = fr.filter(p)
}
return
}
chainreader := NewFReader(myreader).Filter(myfilter1).Filter(myfilter2).Filter(myfilter3)
https://play.golang.org/p/rakSV5kgqR9 var ot [64][6]int
for i := 0; i < 64; i++ {
for j := 0; j < 6; j++ {
ot[i][5-j] = (i >> j) % 2
}
}