go学习

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package main
 
import  "fmt"
 
func main() {
     f :=  make ([][]int,5)   //  初始化
 
     for  i:=0; i<5; i++ {
         f[i] =  make ([]int,6)  //  多维slice 还得再初始化
         for  j:=0; j<6; j++ {
             f[i][j] = 8
         }
     }
 
     fmt .Println(f)
 
     show(k,8,9)
}
 
func show(x func(int,int),i,j int) {    // 函数做参数
         x(i,j)
}
 
func k(a,b int) {
         fmt .Println(a*b)
 
}

结果

1
2
3
# go run a.go 
[[8 8 8 8 8 8] [8 8 8 8 8 8] [8 8 8 8 8 8] [8 8 8 8 8 8] [8 8 8 8 8 8]]
72

上面的二维slice类似go网站的习题.

https://tour.go-zh.org/moretypes/15


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package main
 
import  "fmt"
import  "strconv"
 
func main() {
     k := map[int][]string{}   //  key:value ==> int:[]string
     k[1] =  make ([]string,5)   //  init slice
     k[2] =  make ([]string,5)
     for  i:=0;i<5;i++ {
         k[1][i] = strconv.Itoa(i+i+100)   // 数字到字符串
         k[2][i] = string(i*i+60)   // 直接这样是到单字符了
     }
     for  _, b := range k {
         fmt .Println(b)
     }
     fmt .Println(string(102))
     fmt .Println(string(1020))
         a := string(102)
         fmt .Println([]byte(a)[0])    
}

结果

1
2
3
4
5
6
# go run z.go 
[100 102 104 106 108]
[< = @ E L]
f
102



本文转自 nonono11 51CTO博客,原文链接:http://blog.51cto.com/abian/1905987,如需转载请自行联系原作者
相关文章
|
9月前
|
安全 Java 编译器
对比Java学习Go——基础理论篇
本章介绍了Java开发者学习Go语言的必要性。Go语言以简单、高效、并发为核心设计哲学,摒弃了传统的类继承和异常机制,采用组合、接口和多返回值错误处理,提升了代码清晰度与开发效率。Go直接编译为静态二进制文件,启动迅速、部署简便,其基于Goroutine和Channel的并发模型相较Java的线程与锁机制更轻量安全。此外,Go Modules简化了依赖管理,与Java的Maven/Gradle形成鲜明对比,提升了构建与部署效率。
600 1
|
9月前
|
存储 Java Go
对比Java学习Go——函数、集合和OOP
Go语言的函数支持声明与调用,具备多返回值、命名返回值等特性,结合`func`关键字与类型后置语法,使函数定义简洁直观。函数可作为一等公民传递、赋值或作为参数,支持匿名函数与闭包。Go通过组合与接口实现面向对象编程,结构体定义数据,方法定义行为,接口实现多态,体现了Go语言的简洁与高效设计。
274 4
|
9月前
|
存储 Java 编译器
对比Java学习Go——程序结构与变量
本节对比了Java与Go语言的基础结构,包括“Hello, World!”程序、代码组织方式、入口函数定义、基本数据类型及变量声明方式。Java强调严格的面向对象结构,所有代码需置于类中,入口方法需严格符合`public static void main(String[] args)`格式;而Go语言结构更简洁,使用包和函数组织代码,入口函数为`func main()`。两种语言在变量声明、常量定义、类型系统等方面也存在显著差异,体现了各自的设计哲学。
318 0
|
程序员 Go 云计算
2023年学习Go语言是否值得?探索Go语言的魅力
2023年学习Go语言是否值得?探索Go语言的魅力
学习 Go并发模型
本文通过一个简单例子,讲解如何将数组数据转换为其平方值,并将其分解为三个步骤:生产信息(`producer()`)、处理信息(`square()`)和消费信息(`main()`)。进一步介绍了 FAN-OUT 和 FAN-IN 模型的优化,展示了多 goroutine 并发读写通道的实现方式。FAN-OUT 是多个 goroutine 从同一通道读取数据,而 FAN-IN 是单个 goroutine 从多个通道读取数据。最后强调了优化 FAN 模式时需根据具体场景解决瓶颈问题,并推荐使用带缓冲的通道以提高性能。
156 0
学习 Go并发模型
|
缓存 NoSQL Go
通过 SingleFlight 模式学习 Go 并发编程
通过 SingleFlight 模式学习 Go 并发编程
|
数据采集 监控 Java
go语言编程学习
【11月更文挑战第3天】
343 7
|
设计模式 测试技术 Go
学习Go语言
【10月更文挑战第25天】学习Go语言
472 4
|
JSON 中间件 Go
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
本文详细介绍了如何在Go项目中集成并配置Zap日志库。首先通过`go get -u go.uber.org/zap`命令安装Zap,接着展示了`Logger`与`Sugared Logger`两种日志记录器的基本用法。随后深入探讨了Zap的高级配置,包括如何将日志输出至文件、调整时间格式、记录调用者信息以及日志分割等。最后,文章演示了如何在gin框架中集成Zap,通过自定义中间件实现了日志记录和异常恢复功能。通过这些步骤,读者可以掌握Zap在实际项目中的应用与定制方法
994 1
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
|
编译器 Go
go语言学习记录(关于一些奇怪的疑问)有别于其他编程语言
本文探讨了Go语言中的常量概念,特别是特殊常量iota的使用方法及其自动递增特性。同时,文中还提到了在声明常量时,后续常量可沿用前一个值的特点,以及在遍历map时可能遇到的非顺序打印问题。

热门文章

最新文章