一、前言

对于Goland,会发现有很多和 C 语言相似的地方,毕竟其开发组一个核心人物 肯·汤普森,是 C 语言的核心重要开发者之一。

二、demo

前人云:不动笔墨不读书
作为程序员:“不敲代码不读书”

1、变量常量

package mainimport "fmt"func main() {// 1.先声明,再赋值var a inta = 1fmt.Println(a) // 1// 2.声明 + 赋值b := 2var score int = 148fmt.Println(b, score) // 2 148// 3.同时声明多个变量var (x inty int)x = 192y = 168fmt.Println(x, y) // 192 168// 4.声明 + 位数:8/16/32/64(默认根据本机硬件)var num int32fmt.Println(num) // 0// 5.boolvar status boolstatus = truefmt.Println(status) // true// 6.stringvar s strings = "ITAEM"fmt.Println(s) // ITAEM// 7.const,常量,不可变值const max int = 5fmt.Println(max) // 5// 8.声明赋值多个常量const (userName = "root"password = "123")fmt.Println(userName, password) // root 123// 9、Printfvar mimu int = 6var word string = "骁龙835"fmt.Printf("小米%d 处理器:%s", mimu, word) // 小米6 处理器:骁龙835}/**
注意点:
① 声明变量,但未使用,程序会报错
② 不同位数的变量运算将报错
③ 常量不可变值*/

2、流程控制

package mainimport "fmt"func main() {// 1 if-else 条件判断var flag bool = trueif flag {fmt.Println("ok")} else {fmt.Println("fail")}// 2 for 循环var total int = 0for i := 1; i <= 100; i++ {total += i}fmt.Println(total)// 3 breakfor i := 1; i < 10; i++ {if i == 5 {break}fmt.Print(i)}fmt.Println()// 4 continuefor i := 1; i < 10; i++ {if i%2 == 0 {continue}fmt.Print(i)}fmt.Println()// 5 rangelist := [] string{"I", "T","A","E","M"}for k,v:= range list {fmt.Println(k,v)}// 6 switchchoice := 2switch choice {case 1:fmt.Println(1)case 2:fmt.Println(2)case 3:fmt.Println(3)default:fmt.Println("others")}// 7 输入var input intfmt.Scanln(&input)fmt.Println(input)// 8 延时加载:类似栈for i:=0;i<5;i++ {defer fmt.Print(i) // 4 3 2 1 0}}

3、数组

package mainimport "fmt"func main() {// 1.一维 arrayvar arr [100] intarr[0]=520fmt.Println(arr[0])// 2.二维 arrayarr2 := [3][2] int { [2]int{1,2},[2]int{3,4},[2]int{5,6}}fmt.Println(arr2[0][0])// 3.1 array  CRUDs0 := []int{0,1}// 3.2 增s1 :=append(s0,2)fmt.Println(len(s1))// 3.3 取 arrays2 :=s0[0:2]fmt.Println(len(s2)) // 0,1// 4.1 map   CRUDteam := map[string]string{"ITAEM":"04008","wTeam":"04009",  // 逗号必须的}// 4.2 显fmt.Println(team["ITAEM"])// 4.3 删delete(team,"ITAEM")// 4.4 查var room stringvar exist boolroom,exist=team["ITAEM"]fmt.Println(room,exist)// 4.5 增、改team["ITAEM"]="钟海楼04008"fmt.Println(team["ITAEM"])}

4、函数

package mainimport ("fmt"
)func main() {var a=5show(a)add(&a)show(a)fmt.Println(getTeamName())fmt.Println(getTeam())fmt.Println(getSum(1,2,3,4,5))}func show(a int)  {     // 打印输出fmt.Println(a)
}func add(a *int)  {  // 传引用,修改值*a=*a+1
}func getTeamName() string {  // 单返回值return "ITAEM"
}func getTeam()(string,string)  {  // 多返回值return "ITAEM","04008"
}func getSum(arg ...int) int  {  // 变参var total =0for i := 0; i<len(arg);i++  {total +=arg[i]}return total
}

5、包

package cunimport "fmt"func Show()  {  // 大写字母开头,可以导出fmt.Println(666)  // 666
}
package mainimport "awesomeProject/cun"func main() {cun.Show()
}

6、指针

package mainimport "fmt"func main() {var p *intfmt.Println(p) // <nil>var a intp = &afmt.Println(p) // 0xc04204e088fmt.Println(*p) // 0*p=666fmt.Println(a) // 666,成功修改了 afmt.Println(*p) // 666}

7、结构体

package mainimport "fmt"// 1.1 struct
type Student struct {name stringage int
}func main() {// 1.2 structa := new(Student)a.age=18a.name="rxy"fmt.Println(a)  // &{rxy 18}}

8、接口

package mainimport ("fmt"
)
// 1.接口
type Phone interface {call()
}// 2.类型
type NokiaPhone struct {}
type IPhone struct {}// 3.实现
func (nokiaPhone NokiaPhone) call() {fmt.Println("I am Nokia, I can call you!")
}
func (iPhone IPhone) call() {fmt.Println("I am iPhone, I can call you!")
}func main() {var phone Phonephone = new(NokiaPhone)phone.call()phone = new(IPhone)phone.call()}

9、并发

package mainimport (
"time"
"fmt"
)func ready(w string,sec  int) {time.Sleep(time.Duration(sec)*time.Second)fmt.Println(time.Now(),w,"is ready!")
}
func main() {go ready("Tea",2)go ready("Coffee",1)fmt.Println("I am waiting...")time.Sleep(5*time.Second) // 没有这一句,程序立刻结束,将看不到预期的效果
}

10、通讯

package mainimport ("net""fmt""net/http""io/ioutil"
)func main() {// 1 net:tcp、udpconn1,e :=net.Dial("tcp","120.79.197.130:8080")fmt.Println(conn1)fmt.Println(e )// 2 httpr,err := http.Get("https://blog.csdn.net/larger5")fmt.Println(ioutil.ReadAll(r.Body))fmt.Println(err)}

三、其他

有空再更新 web服务端 方面的

Go 并发:
Do not communicate by sharing memory; instead, share memory by communicating.
“不要以共享内存的方式来通信,相反,要通过通信来共享内存。”

《学习 Go 语言》学习心得相关推荐

  1. 大学计算机软件基础心得体会,学习计算机应用基础心得体会.doc

    文档介绍: 学****计算机应用基础心得体会.doc学****计算机应用基础心得体会小编语:学****计算机基础知识,掌握计算机基本的操作方法,是每个现代人必须学****的内容,目的就是在将来的工作. ...

  2. 学计算机应用基础学到了什么,2021年学习计算机应用基础心得体会-得范文网

    计算机,即电脑,随着科学技术的发展,不断进行着更新发展.伴随着计算机走入人类生活,它已成为人们日常生活必不可少的一部分,甚至成为当下许多人工作生活依赖的工具,并衍生了一些与计算机有关的职业,如电脑工程 ...

  3. 学习《运筹学基础》心得

    运筹学是一门研究如何有效地组织和管理人机系统的科学.运筹学是经济管理类专业的核心基础课之一,"优化"思想,学习运筹学可以提高一个人的组织.协调和控制能力. 运筹学应用活动的六个步骤 ...

  4. 飞桨图像分类零基础训练营学习笔记和心得体会

    飞桨图像分类零基础训练营学习笔记和心得体会 参加了百度一线AI工程师为大家讲解图像分类模型部署.课程内容包含Paddle2.0转静合一轻松导出模型.Paddle Lite环境准备.Paddle Lit ...

  5. 教师要合理使用计算机,教师学习计算机应用基础总结

    现今社会是高度信息化的社会,为适应市场经济的发展和教育改革顺利进行,培养实用人才已成为教育者所瞩目的问题,作为教师应该与时俱进学习计算机知识.下面看看学习啦小编整理的教师学习计算机应用基础总结吧. 教 ...

  6. 大学计算机基础水平,大学计算机基础心得.docx

    大学计算机基础心得 <大学计算机基础>与<大学计算机基础实践教程>假期学 习心得 在科学技术日新月异的发展的今天,人类进入了信息时代,随之而来的是越来越普遍的信息处理工作,计算 ...

  7. 学习计算机在化学中的应用的心得,学习计算机多媒体技术心得体会

    随着科学技术的发展,特别是计算机技术的推广和普及,多媒体技术在课堂教学中得到了广泛的应用,体会. 一.中学教师特别是青年教师要善于学习.乐于学习计算机多媒体技术 计算机多媒体技术作为教学的一项辅助手段 ...

  8. 51单片机c语言学习感想,学习51单片机心得体会

    在这里给大家分享一下学习51单片机心得体会: 1.我从不说51是基础,如果我这么说,也请把这句话理解为微机原理是基础. 2.对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此.库只是一个 ...

  9. matlab实验学习心得,matlab实验心得体会-学习matlab的心得体会

    matlab实验心得体会-学习matlab的心得体会 导语:通过对MATLAB的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了MATLAB的实用方法. ...

  10. 「学科总结」 《运筹学基础》

    前言: 运筹学在小白看来就是处理规划问题--优化.是参加数学建模竞赛的必备基础,达到人生巅峰的必学课程.但是从考试的角度讲,它真的好难啊!!!Very difficult ! 下面小白将梳理一下非线性 ...

最新文章

  1. 一步步学习SPD2010--第十四章节--在Web页面使用控件(3)--验证用户数据输入
  2. 微软称使用 Edge 而非 Chrome 能提升电池续航
  3. 2019牛客暑期多校训练营(第四场)
  4. 【c】‘声明’和malloc不要重复开辟空间
  5. mysql修改子分区_创建MySQL子分区方法
  6. jdk版本修改不生效
  7. html 定位z_index,绝对定位、固定定位和z-index
  8. atitit.atiLinq v2新特性attilax大总结 q326
  9. encode decode 使用指南
  10. 三顾茅庐:刘备如何面试诸葛亮
  11. Python项目实战:爬取图虫创意优质高清壁纸图
  12. SpringBoot如何正确控制bean的加载顺序
  13. ./config.status --recheck 而发现的error的根因与解决方案
  14. 高效办公 1.2 用Python新建Excel文件
  15. Python爬虫之知乎采集工具
  16. GIS教程之将栅格数据 raster data发布到 Web 的 3 个简单步骤
  17. 全屏截图保存为文件_VisualFreeBasic源码
  18. 20145230熊佳炜《网络对抗》实验四:恶意代码分析
  19. 《Digital Design and Computer Architecture》7.4 多周期CPU(1)
  20. Apache LICENSE 2.0 授权介绍

热门文章

  1. 开启memcached日志
  2. 我用计算机的故事,计算机老师的我的教育故事随笔
  3. 计算机的音量找不到了,音量控制不见了_电脑右下角调音量的小喇叭没有了,是怎么回事?该......
  4. 台式计算机开不了机,台式电脑开不了机
  5. html图片不断闪现效果,用CSS制造出光泽一闪而过的图片效果
  6. 微信域名防封的解决方案
  7. PHP生成短连接的方法
  8. 老徐和阿珍的故事:CAP是什么?超级爱放P吗?
  9. python如何绘制曲线图_Python matplotlib 如何绘制双Y轴曲线图?
  10. python如何绘制曲线图_如何使用Python的Pandas库绘制折线图