Go基础---->go的基础学习(一)
这里面记录一些学习go的基础知识。我希望爱我的人不寂寞,我希望我爱的人喜欢我
go的基础知识
一、go中的map的使用
package main import (
"fmt"
) type PersonInfo struct {
ID string
Name string
Address string
} func main() {
// declare map
// var personDB map[string] PersonInfo // create map
var personDB = make(map[string] PersonInfo, 100) // insert data
personDB["LL"] = PersonInfo{"123456", "LL", "wuhan"}
personDB["huhx"] = PersonInfo{"123456", "huhx", "huanggang"} // query key is exiest
person, ok := personDB["huhx"]
if ok {
fmt.Println("Found Person: ", person.Name, ", address", person.Address) // Found Person: huhx , address huanggang
} else {
fmt.Println("No person found")
} // delete key from map
fmt.Println("Before delete: ", len(personDB)) // Before delete: 2
delete(personDB, "huhx")
fmt.Println("After delete: ", len(personDB)) // After delete: 1
}
二、go中数组切片的使用
package main import "fmt" func printArray(array []int) {
for _, v := range array {
fmt.Print(v, " ")
}
fmt.Println()
} func main() {
mySlice := make([]int, 5, 10)
fmt.Println("len: ", len(mySlice)) // len: 5
fmt.Println("cap: ", cap(mySlice)) // cap: 10 // append elements
mySlice = append(mySlice, 1, 2, 3)
mySlice2 := []int{8, 9, 10}
mySlice = append(mySlice, mySlice2...) // get data
printArray(mySlice) // 0 0 0 0 0 1 2 3 8 9 10 // slice from array
newSlice := mySlice[3:]
printArray(newSlice) // 0 0 1 2 3 8 9 10 // content copy
slice1 := []int{1, 2, 3, 4, 5}
slice2 := []int{5, 4, 3}
copy(slice2, slice1) // 只会复制slice1的前3个元素到slice2中
printArray(slice2) // 1 2 3
slice2 = []int{5, 7, 8, 9}
copy(slice1, slice2) // 只会复制slice2的4个元素到slice1的前4个位置
printArray(slice1) // 5 7 8 9 5
}
三、go中的数组是一个值类型
在Go语言中数组是一个值类型(value type)。所有的值类型变量在赋值和作为参数传递时都将产生一次复制动作。如果将数组作为函数的参数类型,则在函数调用时该参数将发生数据复制。
package main import "fmt" func modify(array [5]int) {
array[0] = 10
fmt.Println("In modify(), array values: ", array) // In modify(), array values: [10 2 3 4 5]
} func main() {
array := [5]int{1, 2, 3, 4, 5}
modify(array)
fmt.Println("In main(), array values: ", array) // In main(), array values: [1 2 3 4 5]
}
四、go中的关于循环流程
package main import "fmt" func exampleIf(x int) string {
var result string
if x == 0 {
result = "huhx"
} else {
result = "LL"
}
return result
} func exampleSwitch(i int) {
switch i {
case 0:
fmt.Print("huhx 0 ")
fallthrough
case 1:
fmt.Print("linux 0 ")
case 2:
fmt.Print("LL 0 ")
default:
fmt.Println("tomhu 0 ")
}
} func exampleFor(x int) int {
sum := 0
for i := 0; i < x; i++ {
sum += i
}
return sum
} func exampleWhile(x int) int{
sum := 0
for {
sum ++
if sum > x {
break
}
}
return sum
} func exampleGoto(x int) {
i := 0
HERE:
fmt.Print(i, " ")
i ++
if i < x {
goto HERE
}
} func main() {
// test if
fmt.Println(exampleIf(0)) // huhx // test switch
exampleSwitch(0) // huhx 0 linux 0
fmt.Println() // test for
fmt.Println(exampleFor(10)) // 45 // test while
fmt.Println(exampleWhile(100)) // exampleGoto(10) // 0 1 2 3 4 5 6 7 8 9
}
友情链接
- go中的import的学习:http://www.open-open.com/lib/view/open1384352577352.html
- go学习的一些资源: https://tour.go-zh.org/concurrency/11
Go基础---->go的基础学习(一)的更多相关文章
- 如何夯实(Java)编程基础,并深入学习和提高
如何夯实(Java)编程基础,并深入学习和提高? 240赞同反对,不会显示你的姓名 匿名用户 240 人赞同 多学习...网上自学的学习网站很多,见以下榜单~一.汇总榜单: 公开课_学习网站导航 收录 ...
- 零基础快速入门web学习路线(含视频教程)
下面小编专门为广大web学习爱好者汇总了一条完整的自学线路:零基础快速入门web学习路线(含视频教程)(绝对纯干货)适合初学者的最新WEB前端学习路线汇总! 在当下来说web前端开发工程师可谓是高福利 ...
- 20165312 C语言基础调查和JAVA学习展望
C语言基础调查和JAVA学习展望 一.有关学习技能的经历 掌握一项技能,我认为最重要的是练习和认真程度. 我在上幼儿园的时候学过电子琴,上台表演过多次,但是三四年之后就半途而废了,后来小学毕业之后对钢 ...
- 零基础的人怎么学习Java
编程语言Java,已经21岁了.从1995年诞生以来,就一直活跃于企业中,名企应用天猫,百度,知乎......都是Java语言编写,就连现在使用广泛的XMind也是Java编写的.Java应用的广泛已 ...
- PLSQL优化基础和性能优化 (学习总结)
PLSQL优化基础和性能优化 (学习总结) 网上有一篇关于PLSQL优化的文章,不错,个人根据自己的经验再稍加整理和归纳,总结PLSQL优化和性能调优 适合有一定PLSQL基础,需要进一步提高的学友看 ...
- MySQL基础之事务编程学习笔记
MySQL基础之事务编程学习笔记 在学习<MySQL技术内幕:SQL编程>一书,并做了笔记.本博客内容是自己学了<MySQL技术内幕:SQL编程>事务编程一章之后,根据自己的理 ...
- Python学习day04 - Python基础(2)数据类型基础
<!doctype html>day04 - 博客 figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { ...
- Jmeter基础之---jmeter基础概念
Jmeter基础之---jmeter基础概念 JMeter 介绍: 一个非常优秀的开源的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. JMeter 介绍: 一个非常优 ...
- [.net 面向对象编程基础] (7) 基础中的基础——流程控制语句
[.net 面向对象编程基础] (7) 基础中的基础——流程控制语句 本来没有这一节的内容,后来考虑到既然是一个系列文章,那么就尽可能写的详细一些,本节参考了网上朋友所写的例子,为的是让更多小伙伴学习 ...
- [.net 面向对象编程基础] (19) LINQ基础
[.net 面向对象编程基础] (19) LINQ基础 上两节我们介绍了.net的数组.集合和泛型.我们说到,数组是从以前编程语言延伸过来的一种引用类型,采用事先定义长度分配存储区域的方式.而集合是 ...
随机推荐
- 你用过Spring中哪些功能?
核心容器: IOC:依赖注入 AOP:日志记录,性能统计,安全控制,事务处理,异常处理 Spring MVC: Spring profile:生产和日常配置的切换 Spring事件触发功能:比较简单, ...
- 配置TOMCAT 修改默认ROOT路径
本文转载http://xxs673076773.iteye.com/blog/1134805 最合适的) 最直接的办法是,删掉tomcat下原有Root文件夹,将自己的项目更名为Root. 我在$to ...
- socket编程函数
连接 TCP/IP协议规定网络数据传输应采用大端字节序 socket地址 struct sockaddr{ unsigned short sa_family; char sa_data[14]; }; ...
- 打开Win7休眠模式和离开模式的方法
打开Win7休眠模式和离开模式的方法 ●启动休眠模式 从开始菜单中找到“附件→命令提示符”,手工输入如下命令:powercfg -a,从这里可以清楚的看到,计算机是支持休眠的,显示“尚未启用休眠&qu ...
- Wordpress搭建社交型小游戏网站10大步骤
http://www.aliyun.com/zixun/content/2_8_196141.html ———————————————————————————————————————————————— ...
- 不可错过的10个超棒jQuery表单操作代码片段
jQuery 绝对是一个伟大的开源javascript类库,是帮助我们快速和高效开发前端应用的利器.可能大家在日常的开发过程中常常会处理表单相关的 javascript,在今天这篇代码片段分享文章中, ...
- 为什么要把session存入数据库
比如网易的通行证,一个session能进入很多的网易下的网站
- 关于Struts2的action的execute方法
这个方法必须要有一个String类型的返回值,所以如果写很多if else的话,记得要在最后加一个else,就是无论如何就会放回一个字符串,否则编译会报错,在execute方法名字下面有红线.
- PHP清除HTML代码、空格、回车换行符的函数
清除HTML代码.空格.回车换行符的函数如下 function DeleteHtml($str) { $str = trim($str); $str = strip_tags($str,"& ...
- dos中执行cd命令切换不到对应的盘解决方法
可以使用cd命令,不过需要加参数 /d,如: cd /d e: