《学习 Go 语言》学习心得
一、前言
对于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 语言》学习心得相关推荐
- 大学计算机软件基础心得体会,学习计算机应用基础心得体会.doc
文档介绍: 学****计算机应用基础心得体会.doc学****计算机应用基础心得体会小编语:学****计算机基础知识,掌握计算机基本的操作方法,是每个现代人必须学****的内容,目的就是在将来的工作. ...
- 学计算机应用基础学到了什么,2021年学习计算机应用基础心得体会-得范文网
计算机,即电脑,随着科学技术的发展,不断进行着更新发展.伴随着计算机走入人类生活,它已成为人们日常生活必不可少的一部分,甚至成为当下许多人工作生活依赖的工具,并衍生了一些与计算机有关的职业,如电脑工程 ...
- 学习《运筹学基础》心得
运筹学是一门研究如何有效地组织和管理人机系统的科学.运筹学是经济管理类专业的核心基础课之一,"优化"思想,学习运筹学可以提高一个人的组织.协调和控制能力. 运筹学应用活动的六个步骤 ...
- 飞桨图像分类零基础训练营学习笔记和心得体会
飞桨图像分类零基础训练营学习笔记和心得体会 参加了百度一线AI工程师为大家讲解图像分类模型部署.课程内容包含Paddle2.0转静合一轻松导出模型.Paddle Lite环境准备.Paddle Lit ...
- 教师要合理使用计算机,教师学习计算机应用基础总结
现今社会是高度信息化的社会,为适应市场经济的发展和教育改革顺利进行,培养实用人才已成为教育者所瞩目的问题,作为教师应该与时俱进学习计算机知识.下面看看学习啦小编整理的教师学习计算机应用基础总结吧. 教 ...
- 大学计算机基础水平,大学计算机基础心得.docx
大学计算机基础心得 <大学计算机基础>与<大学计算机基础实践教程>假期学 习心得 在科学技术日新月异的发展的今天,人类进入了信息时代,随之而来的是越来越普遍的信息处理工作,计算 ...
- 学习计算机在化学中的应用的心得,学习计算机多媒体技术心得体会
随着科学技术的发展,特别是计算机技术的推广和普及,多媒体技术在课堂教学中得到了广泛的应用,体会. 一.中学教师特别是青年教师要善于学习.乐于学习计算机多媒体技术 计算机多媒体技术作为教学的一项辅助手段 ...
- 51单片机c语言学习感想,学习51单片机心得体会
在这里给大家分享一下学习51单片机心得体会: 1.我从不说51是基础,如果我这么说,也请把这句话理解为微机原理是基础. 2.对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此.库只是一个 ...
- matlab实验学习心得,matlab实验心得体会-学习matlab的心得体会
matlab实验心得体会-学习matlab的心得体会 导语:通过对MATLAB的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了MATLAB的实用方法. ...
- 「学科总结」 《运筹学基础》
前言: 运筹学在小白看来就是处理规划问题--优化.是参加数学建模竞赛的必备基础,达到人生巅峰的必学课程.但是从考试的角度讲,它真的好难啊!!!Very difficult ! 下面小白将梳理一下非线性 ...
最新文章
- 一步步学习SPD2010--第十四章节--在Web页面使用控件(3)--验证用户数据输入
- 微软称使用 Edge 而非 Chrome 能提升电池续航
- 2019牛客暑期多校训练营(第四场)
- 【c】‘声明’和malloc不要重复开辟空间
- mysql修改子分区_创建MySQL子分区方法
- jdk版本修改不生效
- html 定位z_index,绝对定位、固定定位和z-index
- atitit.atiLinq v2新特性attilax大总结 q326
- encode decode 使用指南
- 三顾茅庐:刘备如何面试诸葛亮
- Python项目实战:爬取图虫创意优质高清壁纸图
- SpringBoot如何正确控制bean的加载顺序
- ./config.status --recheck 而发现的error的根因与解决方案
- 高效办公 1.2 用Python新建Excel文件
- Python爬虫之知乎采集工具
- GIS教程之将栅格数据 raster data发布到 Web 的 3 个简单步骤
- 全屏截图保存为文件_VisualFreeBasic源码
- 20145230熊佳炜《网络对抗》实验四:恶意代码分析
- 《Digital Design and Computer Architecture》7.4 多周期CPU(1)
- Apache LICENSE 2.0 授权介绍
热门文章
- 开启memcached日志
- 我用计算机的故事,计算机老师的我的教育故事随笔
- 计算机的音量找不到了,音量控制不见了_电脑右下角调音量的小喇叭没有了,是怎么回事?该......
- 台式计算机开不了机,台式电脑开不了机
- html图片不断闪现效果,用CSS制造出光泽一闪而过的图片效果
- 微信域名防封的解决方案
- PHP生成短连接的方法
- 老徐和阿珍的故事:CAP是什么?超级爱放P吗?
- python如何绘制曲线图_Python matplotlib 如何绘制双Y轴曲线图?
- python如何绘制曲线图_如何使用Python的Pandas库绘制折线图