Go 温泉 + GoCart をしに行きましょう!
GoCart の方は人数制限が 6 人なので、 温泉参加者が全員走れるとは限りません。 ご注意下さい。
| 'use strict'; | |
| let arr = [10, 2, 5, 8, 6, 1, 3]; | |
| // ASCE | |
| arr.sort((a, b) => a - b); | |
| console.log(arr); | |
| // DESC | |
| arr.sort((a, b) => b - a); |
| function asyncify(fn) { | |
| var origFn = fn; | |
| var id = setTimeout(function () { | |
| id = null; | |
| if (fn) fn(); | |
| }); | |
| fn = null; | |
| return function () { |
| var fs = require('fs'); | |
| function timeoutify(fn, delay) { | |
| var id = setTimeout(function () { | |
| id = null; | |
| fn(new Error('Timeout!')); | |
| }, delay); | |
| return function () { | |
| if (id) { |
| for (var i = 0; i < 5; i++) { | |
| setTimeout(function () { | |
| console.log(i); | |
| }, i * 1000); | |
| } | |
| // 5, 5, 5, 5, 5 |
| var http = require('http'); | |
| http.createServer(function(req, res) { | |
| if(req.method === 'POST') { | |
| res.end('POST'); | |
| console.log('POST'); | |
| } else if (req.method === 'GET') { | |
| res.end('GET'); | |
| console.log('GET'); | |
| } else { |
| acpi | grep -oE \[0-9\]+% |
channelにbufferがあるかないかで、channelを使った同期の挙動が異なる。
詳しくは、公式のThe Go Memory Modelを参照。
以下のルールに従う。 bufferの有無で、送信と受信の優先順位が変わるので注意。
| package closure | |
| type Request struct { | |
| Url string | |
| } | |
| func Closure1(reqs []*Request) { | |
| for _, req := range reqs { | |
| go func(req *Request) { | |
| req.Url = "http://example.org" |
| package main | |
| import ( | |
| "fmt" | |
| "sync" | |
| ) | |
| func main() { | |
| ch := make(chan int) | |
| var wg sync.WaitGroup |