前言:

  整理一下学习 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. Oracle优化-SQL_TRACE

    思维导图 Oracle优化10-SQL_TRACE解读 Oracle优化11-10046事件 概述 当我们想了解一条SQL或者是PL/SQL包的运行情况时,特别是当他们的性能非常差时,比如有的时候看起 ...

  2. matplotlib中文乱码解决方法

    每次编写代码时进行参数设置 import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 ...

  3. 20165324《Java程序设计》第一周

    20165324<Java程序设计>第一周学习总结 教材学习内容总结 第一章:Java入门 重点一.编写Java程序 第一步编写源文件,(注:第一步中Java严格区分大小写:Java源文件 ...

  4. Python(socket编程——2)

    import socket ''' socket.socket(socket_family,socket_type,protocal=0) socket_family 可以是 AF_UNIX 或 AF ...

  5. XDU 1031

    #include<stdio.h> #define maxn 1005 int c[maxn][maxn]; int gcd(int a,int b){ ?a:gcd(b,a%b); } ...

  6. ruby中的self

    self,自己,在ruby中表示当前对象或默认对象.程序执行的任一时刻,有且仅有一个self. 1.谁成为self,在什么位置成为self? 要知道哪个对象是self,就必须知道当前的上下文.上下文主 ...

  7. Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2) D. Volatile Kite

    地址:http://codeforces.com/contest/801/problem/D 题目: D. Volatile Kite time limit per test 2 seconds me ...

  8. Ubuntu 16.04 安装Navicat Premium

    一.介绍 Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL.SQLite.Oracle 及 PostgreSQL 资料库 ...

  9. 使用selenium前学习HTML(3)——元素

    <!-- HTML 元素指的是从开始标签(start tag)到结束标签(end tag)的所有代码. 注释:开始标签常被称为开放标签(opening tag),结束标签常称为闭合标签(clos ...

  10. selenium+xpath 文本信息定位

    selenium中根据父子.兄弟.相邻节点定位的方法,很多人在实际应用中会遇到想定位的节点无法直接定位,需要通过附近节点来相对定位的问题,但从父节点定位子节点容易,从子节点定位父节点.定位一个节点的哥 ...