前言:

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

  简单整理一下 Go 的一些差异处,希望对大家学习 go 有点帮助,不正确的地方还请指教!

一、环境搭建:

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

二、第一课笔记整理:

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

var [名称] [类型]
var name string // 自动推导类型
[名称] := [值]
name := "" // 类型转换
str := ""
var i =
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 :=
f1 := func() {
// 闭包是以引用的方式捕获外部变量
// print(a)
} f1()
// 给一个函数类型起别名
type FuncType func()
var f2 FuncType
f2 = f1
f2() // 定义匿名函数,同时调用
func() {
// ..
}() // 后面的()代表调用此匿名函数
// 带参数同理
}

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

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

方法体类,执行结束后执行,常用一些关闭连接、关闭 IO 等操作

注意:

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

、defer 可以用与匿名函数的调用,如:defer func () { ... }

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

、分文件编程(多个源文件)
、设置 GOPATH 环境变量
、同目录必须包名一致
、go env 查看相关环境路径
、同一目录,直接调用文件函数即可,无需包名 // 包引用
import (
  // 默认不调用 init 方法
  _"fmt"
)

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

if 变量名:a, a <  {
// ...
}

C#/Java 程序员转GO/golang程序员笔记大全(day 01)的更多相关文章

  1. C#/JAVA 程序员转GO/GOLANG程序员笔记大全(DAY 05)

    ----------------------------------------- error 使用 (异常处理) // 语法 (普通错误) import "errors" fun ...

  2. C#/JAVA 程序员转GO/GOLANG程序员笔记大全(DAY 06)

    ----------------------------------------- go 并发 // 注解:go 语言天生为程序并发所设计,可以说go的强项就是在cpu并发上的处理. // go 语言 ...

  3. C#/JAVA 程序员转GO/GOLANG程序员笔记大全(DAY 00)

    一.安装说明 https://studygolang.com/dl 二.环境变量 // 下载 *.msi 安装文件,部分环境变量默认配置好了. 其他配置如下描述 三.目录及项目层级关系 在系统环境变量 ...

  4. C#/JAVA 程序员转GO/GOLANG程序员笔记大全(DAY 04)

    -------------------- interface 接口 // 定义: type IHumaner interface { SayHi() // 接口中只能是方法声明,没有实现,没有数据字段 ...

  5. C#/JAVA 程序员转GO/GOLANG程序员笔记大全(DAY 03)

    go语言当中,没有 class 的概念,那么面向对象的编程思想如何展现呢,go语言中对结构体的使用 struct. package main import "fmt" type P ...

  6. C#/JAVA 程序员转GO/GOLANG程序员笔记大全(DAY 02)

    ------------------- 指针 go 保留的 c 语言指针的操作,同时增加了自动垃圾回收机制 var a = new(int) *a = // &a 内存地址 --------- ...

  7. PHP笔记——java程序员看懂PHP程序

    PHP笔记——java程序员看懂PHP程序   php是一种服务器端脚本语言,类型松散的语言. <?php   ?>       xml风格 <script language=”ph ...

  8. 使用 Java 开发兼容 IPv6 的网络应用程序

    根据现有 IPv4 地址的部署速度,剩余的地址将在 10 到 20 年被使用殆尽.因此网络逐渐从 IPv4 向 IPv6 转换是不可避免的,相应的各种网络应用程序都将支持 IPv6.对于 Java,从 ...

  9. StackOverflow程序员推荐:每个程序员都应读的30本书

    “如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西.” 很多程序员响应,他们在推荐时也写下自己的评语. ...

随机推荐

  1. CCTV-2《遇见大咖》专访雷军----笔记记录

    与央视记者约好两点采访,但因为公司会议拖到了三点.雷军对此表示抱歉,解释了一天的行程,并说:“今天不算密的,密的平均一天应该有十一个会.然后我现在基本每天中午饭,大概就是三分钟的时间.” 因为要上镜, ...

  2. Outputting Strings in the Console

    Outputting Strings in the Console #include <windows.h> class Console {public:  enum fore_color ...

  3. discuz debug下载地址

      Discuz!X会自带Debug模式,主要是用于排查性能问题.垃圾站建议当如果您的站点调试完之后,一定要把debug模式关闭,以免其他用户会获取到一些敏感信息.在调试过程中,config文件配置的 ...

  4. SQL Server返回插入数据的ID和受影响的行数

    首先看看数据库里面的数据(S_Id为自增长标识列): sql server 中返回上一次插入数据的ID(标识值)有三种方式: 第一种 @@IDENTITY: insert into Student(S ...

  5. Andriod实现推送的解决方案(转)

    Andriod上实现消息推送的一般解决策略 第一种解决方案:C2DM云端推送功能 在Android手机平台上,Google提供了C2DM(Cloudto Device Messaging)服务,该服务 ...

  6. OpenStack学习(一)

    学习主要参考博文:https://www.cnblogs.com/CloudMan6/p/5233484.html 这个系列,,这里只是列出自己实际操作碰到的问题 一.安装系统:ubuntu 16.0 ...

  7. tensorboard实现训练的可视化

    tensorboard是tensorflow自带的可视化工具 输入命令可以启动tensorboard服务. tensorboard --logdir=your log dir 通过浏览器localho ...

  8. ReentrantLock的底层实现机制 AQS

    ReentrantLock的底层实现机制是AQS(Abstract Queued Synchronizer 抽象队列同步器).AQS没有锁之类的概念,它有个state变量,是个int类型,为了好理解, ...

  9. 分布式存储系统 Ceph

    你了解Ceph吗? Ceph是一种分布式存储系统,它可以将多台服务器组成一个超大集群,把这些机器中的磁盘资源整合到一块儿,形成一个大的资源池(PB级别),然后按需分配给应用使用. 那么你知道Ceph的 ...

  10. AJAX跨域问题解决方法(4)——调用方解决跨域

    调用方解决跨域的方法只有一种,那就是隐藏跨域. 何为隐藏跨域? 隐藏跨域的核心思路是通过反向代理隐藏跨域以欺骗浏览器 什么是反向代理?反向代理是指通过中间服务器使得访问同一个域名的两个不同url最终会 ...