前言:

  整理一下学习 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. 随机深林和GBDT

    随机森林(Random Forest): 随机森林是一个最近比较火的算法,它有很多的优点: 在数据集上表现良好 在当前的很多数据集上,相对其他算法有着很大的优势 它能够处理很高维度(feature很多 ...

  2. WebUploader 上传插件结合bootstrap的模态框使用时选择上传文件按钮无效问题的解决方法

    由于种种原因(工作忙,要锻炼健身,要看书,要学习其他兴趣爱好,谈恋爱等),博客已经好久没有更新,为这个内心一直感觉很愧疚,今天开始决定继续更新博客,每周至少一篇,最多不限篇幅. 今天说一下,下午在工作 ...

  3. idea 取消控制台的行数限制

    有时候我们要输出大量的信息放到控制台显示,但是多了之后就出现最上面的信息被覆盖删除, 因此就需要设置控制台的显示行数,但在idea7之后的版本中,取消了对控制台行数设置选项, 只能通过更改配置文件进行 ...

  4. iClap分享:如何优雅的在 APP 中实现测试?

    开发团队常面临的问题有:内测 APP 时测出一堆 bug 写了很多文档,交到下一个人手中时问题总是不够清晰明了;版本发布公测时只能分发原生版本给团队和用户,无法快速反馈测试和体验结果;使用第三方工具, ...

  5. 带你走进AJAX(1)

    ajax是什么? (1)ajax (asynchronouse javascript and xml) 异步的javascript 和xml (2)ajax是一个粘合剂,将javascript.xml ...

  6. css 中 transition 需要注意的问题

    cubic-bezier 是 transition-timing-function 的值的一种. 四个参数的关系式如下(t 代表时间,取值范围 [0, 1]):P0(1-t)3 + 3P1t(1-t) ...

  7. 在父页面和其iframe之间函数回调 父页面回调iframe里写的函数

    // @shaoyang  父页面 window['mengBanLogin']={ mengBanArr : new Array(), mengBanLoginSuccess : function( ...

  8. python之yield

    #!/usr/bin/env python# -*- coding:utf-8 -*-# Author:wadeson '''def foo(): print("-------------- ...

  9. Myeclipse中java项目转换为Web项目

    https://blog.csdn.net/u010097777/article/details/51281059 这两天工作安排做一个跳转页面,不过昨天发布自己的Tomact花了不少时间,给的项目添 ...

  10. LabVIEW之Vision基础 (一)之软件

    一.软件准备 NI LabVIEW软件视觉开发必备软件 1.开发平台:LabVIEW 2015Chinese 32位中文版 链接:http://pan.baidu.com/s/1eRGmFVc 2.N ...