zoukankan      html  css  js  c++  java
  • go 笔记

    Go 语言的变量声明格式为:

    var 变量名 变量类型 返回类型.

    匿名变量不占用命名空间,不会分配内存。匿名变量与匿名变量之间也不会因为多次声明而无法使用。

    func GetData() (int, int) {
        return 100, 200
    }
    
    a, _ := GetData()
    _, b := GetData()
    
    fmt.Println(a, b)

    Go 语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有切片、结构体、函数、map、通道(channel)等。Go 语言的基本类型和其他语言大同小异,切片类型有着指针的便利性,但比指针更为安全,很多高级语言都配有切片进行安全和高效率的内存操作。

    1. // 定义商标结构
    2. type Brand struct {
    3. }
    4. // 为商标结构添加Show()方法
    5. func (t Brand) Show() {
    6. }

    遍历数组:

    for k,v:= range team2{
            fmt.Print(k,v)
        }

    匿名函数赋值给匿名变量

        f := func(data int) {
            fmt.Println(data)
        }

    被捕获到闭包中的变量让闭包本身拥有了记忆效应,闭包中的逻辑可以修改闭包捕获的变量,变量会跟随闭包生命期一直存在,闭包本身就如同变量一样拥有了记忆效应。

    当可变参数为 interface{} 类型时,可以传入任何类型的值。

    结构体实例化方式:

    1. var ins T

    2. ins := new(T)

    3. ins := &T{}

    4. ins := T{}

    延迟调用是在 defer 所在函数结束时进行,函数结束可以是正常返回时,也可以是发生宕机时。

    defer 语句正好是在函数退出时执行的语句,所以使用 defer 能非常方便地处理资源释放问题。

    使用 Go 语言的内嵌结构体实现对象特性,可以自由地在对象中增、删、改各种特性。Go 语言会在编译时检查能否使用这些特性。


    interface{} 类型表示空接口,意思就是这种接口可以保存为任意类型

    在 GOPATH 指定的工作目录下,代码总是会保存在 $GOPATH/src 目录下。在工程经过 go build、go install 或 go get 等指令后,会将产生的二进制可执行文件放在 $GOPATH/bin 目录下,生成的中间缓存文件会被保存在 $GOPATH/pkg 下。

    包名为 main 的包为应用程序的入口包,编译源码没有 main 包时,将无法编译输出可执行的文件

    待学习
    http://c.biancheng.net/view/58.html

    select常配合for循环来监听channel有没有故事发生。需要注意的是在这个场景下,break只是退出当前select而不会退出for,需要用break TIP / goto的方式。

  • 相关阅读:
    虚拟机Linux环境搭建所遇到的 问题
    Java-字节流读写文件
    [ZJOI2019]语言
    [CTSC2006]歌唱王国
    CF500F New Year Shopping
    CF438E The Child and Binary Tree
    [GXOI/GZOI2019]旧词
    [LNOI2014]LCA
    [CTSC2017]吉夫特
    [SDOI2014]旅行
  • 原文地址:https://www.cnblogs.com/snow-man/p/10167493.html
Copyright © 2011-2022 走看看