C#/Java 程序员转GO/golang程序员笔记大全(day 01)
前言:
整理一下学习 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)的更多相关文章
- C#/JAVA 程序员转GO/GOLANG程序员笔记大全(DAY 05)
----------------------------------------- error 使用 (异常处理) // 语法 (普通错误) import "errors" fun ...
- C#/JAVA 程序员转GO/GOLANG程序员笔记大全(DAY 06)
----------------------------------------- go 并发 // 注解:go 语言天生为程序并发所设计,可以说go的强项就是在cpu并发上的处理. // go 语言 ...
- C#/JAVA 程序员转GO/GOLANG程序员笔记大全(DAY 00)
一.安装说明 https://studygolang.com/dl 二.环境变量 // 下载 *.msi 安装文件,部分环境变量默认配置好了. 其他配置如下描述 三.目录及项目层级关系 在系统环境变量 ...
- C#/JAVA 程序员转GO/GOLANG程序员笔记大全(DAY 04)
-------------------- interface 接口 // 定义: type IHumaner interface { SayHi() // 接口中只能是方法声明,没有实现,没有数据字段 ...
- C#/JAVA 程序员转GO/GOLANG程序员笔记大全(DAY 03)
go语言当中,没有 class 的概念,那么面向对象的编程思想如何展现呢,go语言中对结构体的使用 struct. package main import "fmt" type P ...
- C#/JAVA 程序员转GO/GOLANG程序员笔记大全(DAY 02)
------------------- 指针 go 保留的 c 语言指针的操作,同时增加了自动垃圾回收机制 var a = new(int) *a = // &a 内存地址 --------- ...
- PHP笔记——java程序员看懂PHP程序
PHP笔记——java程序员看懂PHP程序 php是一种服务器端脚本语言,类型松散的语言. <?php ?> xml风格 <script language=”ph ...
- 使用 Java 开发兼容 IPv6 的网络应用程序
根据现有 IPv4 地址的部署速度,剩余的地址将在 10 到 20 年被使用殆尽.因此网络逐渐从 IPv4 向 IPv6 转换是不可避免的,相应的各种网络应用程序都将支持 IPv6.对于 Java,从 ...
- StackOverflow程序员推荐:每个程序员都应读的30本书
“如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西.” 很多程序员响应,他们在推荐时也写下自己的评语. ...
随机推荐
- CCTV-2《遇见大咖》专访雷军----笔记记录
与央视记者约好两点采访,但因为公司会议拖到了三点.雷军对此表示抱歉,解释了一天的行程,并说:“今天不算密的,密的平均一天应该有十一个会.然后我现在基本每天中午饭,大概就是三分钟的时间.” 因为要上镜, ...
- Outputting Strings in the Console
Outputting Strings in the Console #include <windows.h> class Console {public: enum fore_color ...
- discuz debug下载地址
Discuz!X会自带Debug模式,主要是用于排查性能问题.垃圾站建议当如果您的站点调试完之后,一定要把debug模式关闭,以免其他用户会获取到一些敏感信息.在调试过程中,config文件配置的 ...
- SQL Server返回插入数据的ID和受影响的行数
首先看看数据库里面的数据(S_Id为自增长标识列): sql server 中返回上一次插入数据的ID(标识值)有三种方式: 第一种 @@IDENTITY: insert into Student(S ...
- Andriod实现推送的解决方案(转)
Andriod上实现消息推送的一般解决策略 第一种解决方案:C2DM云端推送功能 在Android手机平台上,Google提供了C2DM(Cloudto Device Messaging)服务,该服务 ...
- OpenStack学习(一)
学习主要参考博文:https://www.cnblogs.com/CloudMan6/p/5233484.html 这个系列,,这里只是列出自己实际操作碰到的问题 一.安装系统:ubuntu 16.0 ...
- tensorboard实现训练的可视化
tensorboard是tensorflow自带的可视化工具 输入命令可以启动tensorboard服务. tensorboard --logdir=your log dir 通过浏览器localho ...
- ReentrantLock的底层实现机制 AQS
ReentrantLock的底层实现机制是AQS(Abstract Queued Synchronizer 抽象队列同步器).AQS没有锁之类的概念,它有个state变量,是个int类型,为了好理解, ...
- 分布式存储系统 Ceph
你了解Ceph吗? Ceph是一种分布式存储系统,它可以将多台服务器组成一个超大集群,把这些机器中的磁盘资源整合到一块儿,形成一个大的资源池(PB级别),然后按需分配给应用使用. 那么你知道Ceph的 ...
- AJAX跨域问题解决方法(4)——调用方解决跨域
调用方解决跨域的方法只有一种,那就是隐藏跨域. 何为隐藏跨域? 隐藏跨域的核心思路是通过反向代理隐藏跨域以欺骗浏览器 什么是反向代理?反向代理是指通过中间服务器使得访问同一个域名的两个不同url最终会 ...