前言:

  整理一下学习 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. mysql相关配置

    http://www.cnblogs.com/cnblogsfans/archive/2009/09/21/1570942.html http://www.jb51.net/article/31902 ...

  2. 03 linux命令的操作

    开启Linux操作系统,要求以root用户登录GNOME图形界面,语言支持选择为汉语 使用快捷键切换到虚拟终端2,使用普通用户身份登录,查看系统提示符 使用快捷键切换到虚拟终端5,使用管理员身份登录, ...

  3. css-1,css的三种引入方式 基本选择器

    <!-- (1)CSS 层叠样式表 作用:修饰网页结构 (2)css的三种引入方式 权重: 优先级高 权重大 谁在页面谁的权重大 - 行内样式 注意:行内样式的优先级是最高的 - 内接样式 - ...

  4. 最好的 Xcode 自动生成版本号技术

    在 bloglovin ,我们使用自动生成版本号来设置Xcode,使当前的版本号为在Git活跃的分支上 的提交数.它一直正常工作着,但我们的技术也不是一帆风顺的. 糟糕的老方法 我们使用的技术是来自一 ...

  5. intellij-idea+maven搭建scala环境

    一 . 安装JDK 1. 下载地址: http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6 ...

  6. LINUX SHELL 笔记 01: 脚本

    root@iZwz:~/labs# vim myfirst root@iZwz:~/labs# cat myfirst #!/bin/bash clear echo "this is my ...

  7. centos 最新版git 致命错误: zlib.h:没有那个文件或目录

    遇到此类问题通常是缺少对应的库文件. 由于yum install是老版本的git 还是1.8的 如果需要安装新版本的git,官方给出的url:https://git-scm.com/download/ ...

  8. python之subprocess

    官网介绍:https://docs.python.org/3/library/subprocess.html Popen(): [root@oracle scripts]# cat sub_popen ...

  9. 20145303 《Java程序设计》第8周学习总结

    20145303 <Java程序设计>第8周学习总结 教材学习内容总结 第十四章 NIO和NIO2 1.NIO的定义 InputStream.OutputStream的输入输出,基本上是以 ...

  10. 学习Windows(BAT)、Linux(Shell)编程,并分别写一个脚本文件解决自己的一个问题

    delete: @echo off echo Press any key to delete this file.pause del %0 ip: @echo off color a Title 端口 ...