zoukankan      html  css  js  c++  java
  • Golang,开车上路。

    2017年1月29日,开始学习 golang, 一边学习一边做笔记。

    ◆ Golang 的开发环境非常容易搭建,双击安装包安装后,设置一个系统变量即可。

    设置系统变量

    安装 go 1.8 以上版本,则连这个系统变量也不用设置,默认 %USERPROFILE%go 为 workspace, 因此,只要在 %USERPROFILE% 里新建文件夹 go/src 即可。

    ◆ 利用当前时间来做随机数的种子。

    利用当前时间来做随机数的种子。

    ◆ 教程里说:

    nil map has no keys, nor can keys be added.

    但是没有给出具体的例子,于是我做了以下试验:

    var m map[string]int // 构建一个空map
    m["abc"] = 123       // 对空map添加key
    fmt.Println(m)
    

    结果,果然运行出错 panic: assignment to entry in nil map

    这里 https://blog.golang.org/go-maps-in-action 有更详细的说明。

    ◆ 把 byte 转换为 string

      正确的方法是先把 byte 转换为 int, 再使用 strconv.Itoa 函数。

     

    一开始我尝试使用 string(int) 来转换,但是不对,没想到这样做其实是把 code points 转换为 Unicode 字符,详细说明参阅:https://golang.org/ref/spec#Conversions

    ◆ A Tour of Go, Exercise: Readers

      在官方答案里,是这样定义这个method的:

    func (r MyReader) Read(b []byte) (int, error)
    

      但是我发现变量 r 根本没有被调用,尝试不要这个变量,即:

    func (MyReader) Read(b []byte) (int, error)
    

      果然,这样也是可以的。

    ◆ goland 的语法比较严格,如下面这个例子所示, struct 的最后一个元素与大括号之间如果有换行,则需要逗号,否则编译出错。不换行则不需要逗号。

    ◆ 声明时自动计算 array 长度

    a := [...]string{"Penn", "Teller"} // len(a) is 2
    

      

    (本文档随着我一边学习一边更新)

  • 相关阅读:
    LeetCode 914. 卡牌分组
    LeetCode 999. 车的可用捕获量
    LeetCode 892. 三维形体的表面积
    21航电5E
    min25筛 学习笔记
    牛客多校6G
    2021航电多校3
    2021牛客多校H
    [模版] 快速傅里叶变换
    2021牛客多校第五场
  • 原文地址:https://www.cnblogs.com/ahui2017/p/6357530.html
Copyright © 2011-2022 走看看