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

基础语法:
// ————————————— 变量声明
var [名称] [类型]
var name string

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

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

 

// —————————————  range 迭代器
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() {

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

f1()

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

// 定义匿名函数,同时调用
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”
)

posted on 2018-07-19 21:02 loongchao 阅读() 评论() 编辑 收藏

版权声明:本文为loongsoft原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/loongsoft/p/9338382.html