golang基本用法速查

supertab · · 498 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Hello World!

package main

import "fmt"

func main() {
   fmt.Println("Hello World!") 
}

引入模块

引入内置模块

//单个引入
import "fmt"

//引入多少个
import (
    "fmt"
    "os"
)

引入第三方模块

  • 规则: 默认从 GOPATH 下 src 目录开始找
  • import 的路径到目录终止, 不会到文件, 每个目录就是一个模块, 一般最终目录名即模块名
  • 默认的模块名由 go 文件首行 package 定义, 多个 go 文件的 package 可以相同, 同一模块的 go 文件应该放置于同一个目录
  • 模块可以使用别名
  • 通过 govendor 可以方便进行项目迁移
import (
    "github.com/wildsre/arc/arc"
    arcModel "github.com/wildsre/arc/model"
    "github.com/wildsre/arc/router"
)

变量初始化

基本变量初始化

    var x int
    var (
        i int
        j float64
        k, z string
    )
    v := "test"

数组&切片初始化

初始化后, 长度和容量都相等, 数组初始化完后就已经分配所有长度的内存, 切片在使用append扩容后, cap会与len不等

    arr := [3]int{1,23} //len: 3, cap: 3 
    s := []int{1,3}     //len:2, cap:2

映射初始化

  • 常规初始化
    //方式1: 先声明, 后赋值, 声明后m为nil指针
    var m map[string]string
    m = make(map[string]string)
    m["k1"] = "v1"
    //方式2
    m2 := map[string]string{"k1":"v1", "k2":"v2"}
  • 嵌套映射初始化
    m2 := map[string][]int{"k1":{1,2}, "k2":{1,1}}
    m3 := map[string]map[string]string{"k1":{"k11":"v1"}}

结构体初始化

    //匿名结构体
    s1 := struct {
        Att1 string
        Att2 int
    }{"a", 1}

    //先定义再初始化
    type Foo struct {
        A1 string
        A2 []int
    }

    //初始化需要注意, 前后括行不能为空 
    // Foo:{
    //    "a", 
    //    []int{1,2} 
    // } 会报错
    s2 := Foo{ "a",
        []int{1,3} }

    //初始化部分变量
    s3 := Foo{ A1: "s" }

控制语句

循环

    for i:=0; i<2; i++ {
        fmt.Println(i)
    }

判断

    if i<0 {
        fmt.Println("one")
    } else if i>=0 && i<3 {
        fmt.Println("two")
    } else {
        fmt.Println("three")
    }

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:supertab

查看原文:golang基本用法速查

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

498 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传