C#/Java 程序员转GO/golang程序员笔记大全(day 01)

前言:编程

  整理一下学习 Go 语言的笔记,做为一名老程序,学习一名新的开发语言天然不须要像小白那样从 HelloWorld 看起。闭包

  简单整理一下 Go 的一些差别处,但愿对你们学习 go 有点帮助,不正确的地方还请指教!函数

 

1、环境搭建:学习

  博客园不少教程,自行解决,推荐使用 VS Code 绿灯 + 插件的方式,简单粗暴好用spa

 

2、第一课笔记整理:插件

基础语法:
// --------------------------------------- 变量声明code

var [名称] [类型]
var name string

// 自动推导类型
[名称] := [值]
name := ""

// 类型转换
str := "666"
var i = 0
i = (int)str

 

// ---------------------------------------  range 迭代器blog

str := "abc"
for i, data := range str { // data 可省略
  fmt.Println(i, data)
}

 

// ---------------------------------------  函数定义教程

// 函数名首字母小写即为 private,大写即为 public
func [函数名](形参) (返回值) {
    // 方法体
    return 参数1, 参数2
}
// 不定参数类型(切片)
func [函数名](args ...string)(返回值) {
    // ....
}
// 匿名变量
num1, _ := Func()

 

// ---------------------------------------  回调函数(多态)开发

 

// ---------------------------------------  匿名函数与闭包

func main() {
    a := 10
    f1 := func() {
         // 闭包是以引用的方式捕获外部变量
        // print(a)
    }

    f1()
    // 给一个函数类型起别名
    type FuncType func()
    var f2 FuncType
    f2 = f1
    f2()

    // 定义匿名函数,同时调用
    func() {
        // ..
    }() // 后面的()表明调用此匿名函数
    // 带参数同理
}

 

 
// ---------------------------------------  闭包的特色(装逼用法)

 

// --------------------------------------- defer 关键字做用(延缓调用,相似析构函数)

方法体类,执行结束后执行,经常使用一些关闭链接、关闭 IO 等操做

注意:

1、多个 defer 状况下,是先进后出的顺序

2、defer 能够用与匿名函数的调用,如:defer func () { ... }

 


// --------------------------------------- 工程管理

1、分文件编程(多个源文件)
2、设置 GOPATH 环境变量
3、同目录必须包名一致
4、go env 查看相关环境路径
5、同一目录,直接调用文件函数便可,无需包名

// 包引用
import (
  // 默认不调用 init 方法
  _"fmt"
)

 
// --------------------------------------- 工程管理

if 变量名:a, a < 10 {
    // ...
}
相关文章
相关标签/搜索