Golang 中国

rockman

闻道有先后,术业有专攻

Golang China 第 5135 号会员,加入于 2016-03-24 18:04



Golang爱好者

rockman最近回复了


回复了 lmhao 创建的主题: 处理excel文件时遇到的问题 2018-08-08 16:33

你需要的是libxls

C的库,用来操作xls文件
可以通过CGO,从Go中调用libxls中的C函数

可以参考xls2csv-go

回复了 wildkid1024 创建的主题: [golang]基本的问题 2018-06-29 15:10

Initialize Slice with nil Value

A nil slice is functionally equivalent to a zero-length slice, even though it points to nothing. It has length zero and can be appended to, with allocation.

var s []string

References

回复了 junzizhiyao 创建的主题: 在看《GO语言程序设计》这本书,有个转换json的地方看不懂,望解答 2018-06-29 14:49

可以看下Encode的文档:

Encode writes the JSON encoding of v to the stream, followed by a newline character.

把v对应的JSON Encoding写入到Writer对应的stream中,然后换一行。

你的例子调用了3次Encode(),所以写入3个JSON Encoding,然后有3行。

测试例子:

package main

import (
    "encoding/json"
    //"fmt"
    "os"
)

type Invoice struct {
    Title string `json:"title"`
}

func main() {
    fileType := "json"
    fileVersion := 1
    invoices := []*Invoice{
        &Invoice{
            Title: "Invoice 1",
        },
        &Invoice{
            Title: "Invoice 2",
        },
    }

    encoder := json.NewEncoder(os.Stdout)
    encoder.Encode(fileType)
    encoder.Encode(fileVersion)
    encoder.Encode(invoices)

    // Output:
    //"json"
    //1
    //[{"title":"Invoice 1"},{"title":"Invoice 2"}]
}
回复了 rockman 创建的主题: golangtc.com经常不能访问。 网络:上海电信 2017-12-08 20:13

又不能访问了。ip显示是香港阿里云的地址。
站长如果自己有公司的话,可以考虑走备案。

回复了 xt3627216 创建的主题: Go中string类型是如何进行比较操作的? 2017-12-08 11:02

实质是内存块的比较,最终会调用对应架构的汇编代码(Go 1.9)。

详见:Golang String Compare Internals(Go 1.9)

回复了 2805408253 创建的主题: web开发框架选择 2017-12-08 10:28

推荐比较轻巧的GIN

用来搭建API微服务很快速。

很多教程:

回复了 rockman 创建的主题: golangtc.com经常不能访问。 网络:上海电信 2017-12-08 09:49

这几天上海电信可以访问了,看样子站长搞定了。
怎么解决的?

回复了 Zhangyc310 创建的主题: 如果根据不同的域名,选择不同的handler 2016-10-11 15:21

使用Host-specific pattern for ServeMux

Host Multiple Domains in a Single Golang HTTP Server

To host multiple domains in a single Golang HTTP server, we need to use Host-specific pattern for ServeMux:

Patterns may optionally begin with a host name, restricting matches to URLs on that host only. Host-specific patterns take precedence over general patterns, so that a handler might register for the two patterns “/codesearch” and “codesearch.google.com/“ without also taking over requests for “http://www.google.com/“.

// For Example:
func main() {
    http.HandleFunc("a.com/", helloA)
    http.HandleFunc("sub.a.com/", helloSubA)
    http.HandleFunc("b.com/", helloB)

    if err := http.ListenAndServe(":80", nil); err != nil {
        log.Fatal(err)
    }
}

Example

References

原文链接:
Host Multiple Domains in a Single Golang HTTP Server)

回复了 panjjo 创建的主题: 使用Redis 连接池客户端出现大量TIME_WAIT的链接,是我用法有问题么? 2016-10-10 15:11

先完全用Redigo的官方示例的newPool()替换自己的试试看:

func newPool(server, password string) *redis.Pool {
    return &redis.Pool{
        MaxIdle: 3,
        IdleTimeout: 240 * time.Second,
        Dial: func () (redis.Conn, error) {
            c, err := redis.Dial("tcp", server)
            if err != nil {
                return nil, err
            }
            if _, err := c.Do("AUTH", password); err != nil {
                c.Close()
                return nil, err
            }
            return c, err
        },
        TestOnBorrow: func(c redis.Conn, t time.Time) error {
            if time.Since(t) < time.Minute {
                return nil
            }
            _, err := c.Do("PING")
            return err
        },
    }
}
回复了 shuaixinga 创建的主题: 学习GOLANG很久,还是感觉struct和interface很乱,如何解决? 2016-09-11 19:17

stevewang说的很对。

比如在HTTP服务中动态生成一个压缩包,然后作为response。就可以使用http.ResponseWriter作为参数。

rockman 创建的更多回复