go语言

Go语言结构

浪尽此生 提交于 2019-12-25 01:07:34
Go 语言结构 在我们开始学习 Go 编程语言的基础构建模块前,让我们先来了解 Go 语言最简单程序的结构。 Go Hello World 实例 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 & 表达式 注释 接下来让我们来看下简单的代码,该代码输出了"Hello World!": package main import "fmt" func main() { /* 这是我的第一个简单的程序 */ fmt.Println("Hello, World!") } 让我们来看下以上程序的各个部分: 第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。 下一行 import "fmt" 告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。 下一行 func main() 是程序开始执行的函数。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。 下一行 /*...*/ 是注释,在程序执行时将被忽略。单行注释是最常见的注释形式

Go语言基础介绍

前提是你 提交于 2019-12-25 01:07:12
Go是一个开源的编程语言。Go语言被设计成一门应用于搭载Web服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。目前,Go最新发布版本为1.10. Go语言可以运行在Linux、FreeBSD、Mac OS X和Windows系统上。 1. 结构:Go语言的基础组成有以下几个部分:包声明、引入包、函数、变量、语句&表达式、注释。 (1)、必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main (2)、注释与C++相同,有单行注释即”//”和多行注释即”/* … */”两种。 (3)、当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出;标识符如果以小写字母开头,则对包外是不可见的,但是它们在整个包的内部是可见并且可用的。 2. 基础语法: (1)、Go标记:Go程序可以由多个标记组成,可以是关键字、标识符、常量、字符串、字符。 (2)、行分隔符:在Go程序中,一行代表一个语句结束。每个语句不需要像C++语言一样以分号”;”结尾,因为这些工作都将由Go编译器自动完成。如果你打算将多个语句写在同一行,它们必须使用”;”为区分,但在实际开发中我们并不鼓励这种做法。 (3)、注释:注释不会被编译,每一个包应该有相关注释。单行注释以”//

go语言学习之路 二:变量

点点圈 提交于 2019-12-25 01:07:01
说道变量,首先应该提一提关键字,因为不能把关键字当做变量来声明。 关键字: 下面列出GO语言的关键字或保留字: break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var 除了以上介绍的这些关键字,Go 语言还有 36 个预定义标识符,其中包含了基本类型的名称和一些基本的内置函数,见下表: append bool byte cap close complex complex64 complex128 uint16 copy false float32 float64 imag int int8 int16 uint32 int32 int64 iota len make new nil panic uint64 print println real recover string true uint uint8 uintptr 这些关键字和保留字不需要特意去记,先走马观花看看,在以后的编程过程中会反复看到这些身影。 变量 声明变量的一般形式是使用 var 关键字:var identifier type。需要注意的是,Go 和许多编程语言不同

Go语言学习笔记

二次信任 提交于 2019-12-25 01:05:20
Go 语言数据类型 Go 语言按类别有以下几种数据类型: 序号 类型和描述 1 布尔型 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。 2 数字类型 整型 int 和浮点型 float,Go 语言支持整型和浮点型数字,并且原生支持复数,其中位的运算采用补码。 3 字符串类型: 字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。Go语言的字符串的字节使用UTF-8编码标识Unicode文本。 4 派生类型: 包括: (a) 指针类型(Pointer) (b) 数组类型 (c) 结构化类型(struct) (d) 联合体类型 (union) (e) 函数类型 (f) 切片类型 (g) 接口类型(interface) (h) Map 类型 (i) Channel 类型 数字类型 Go 也有基于架构的类型,例如:int、uint 和 uintptr。 序号 类型和描述 1 uint8 无符号 8 位整型 (0 到 255) 2 uint16 无符号 16 位整型 (0 到 65535) 3 uint32 无符号 32 位整型 (0 到 4294967295) 4 uint64 无符号 64 位整型 (0 到 18446744073709551615) 5 int8 有符号 8 位整型 (-128 到

Go语言结构

℡╲_俬逩灬. 提交于 2019-12-25 00:22:50
了解Go语言最简单程序的结构 一、Go Hello World 实例 Go语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 & 表达式 注释 Hello World 实例: package main import "fmt" func main() { /* 这是我的第一个简单Go程序 */ fmt.Println("Hello World!") } 以上程序的各个部分: 第一行代码 package main 定义了包名。必须在源文件中非注释的第一行指明这个文件属于哪个包,如: package main 。 package main 表示一个可独立执行的程序,每个Go应用程序都包含一个 名为 main 的包。 下一行import "fmt" 告诉Go编译器这个程序需要使用fmt包(的函数,或其他元素),fmt包实现了格式化IO(输入/输出)的函数。 下一行 func main( )是程序开始执行的函数。main 函数是每一个可执行程序必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init( ) 函数则会先执行该函数)。 下一行/*……*/是注释,在程序执行时将被忽略。单行注释是最常见的注释形式,可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均以 /* 开头,并以 */ 结尾,并且不可以嵌套使用

Go语言管道

痴心易碎 提交于 2019-12-24 14:10:22
Channel概念 Channel 是Go中的一个核心类型,你可以把它 看成一个管道 。 Channel是引用类型 ,操作符是箭头 <- 。 Channel 是 CSP 模式 的具体实现,用于多个 goroutine 通讯。其内部实现了同步,确保 并发安全。 Channel 是线程安全的 , 先进先出 ,多个goroutine同时访问, 不需要加锁,channel是有类型的 ,一个整数的channel只能存放整数。 Channel定义 第一种,channel声明 声明int类型的chan var ch chan int 声明string类型的chan var ch chan string 声明map类型chan var ch chan map[int]string 第二种,使用make定义,无缓冲channel var ch1 chan int = make(chan int) var ch2 = make(chan int) ch3 := make(chan int) 第三种,使用make定义,有缓冲channel var ch1 chan int = make(chan int, 10) var ch2 = make(chan int, 10) ch3 := make(chan int, 10) 第四种,只读channel var ch1 <-chan int var ch2

初识Go语言

拈花ヽ惹草 提交于 2019-12-24 13:58:31
目录 写在前面 Go的来源 关于Go的语法语义学习 写在前面 说起编程,首先不得不提的就是操作系统,编译器,还有代码编辑器,当然还有IDE(integrated development environment 集成开发环境) 对于编程环境的配置,官方文档有详细的说明,需要读者耐心去看去操作 我本人试过linux和windows下安装 我使用的linux发行版本是ubuntu,直接源码安装,也很方便,下载源码,解压,设置环境变量,重启一下就ok windows推荐使用msi文件安装,这样直接自带离线教程非常方便 至于其它的工具,这里暂时不提 Go的来源 这里截取百度百科的内容 Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。 这里截取Go中文文档( http://docscn.studygolang.com/doc/)中的内容 Go 编程语言是一个开源项目,它使程序员更具生产力。 Go 语言具有很强的表达能力,它简洁、清晰而高效。得益于其并发机制, 用它编写的程序能够非常有效地利用多核与联网的计算机,其新颖的类型系统则使程序结构变得灵活而模块化。 Go 代码编译成机器码不仅非常迅速,还具有方便的垃圾收集机制和强大的运行时反射机制。 它是一个快速的、静态类型的编译型语言,感觉却像动态类型的解释型语言。 感想

Go语言获取系统性能数据gopsutil库

孤人 提交于 2019-12-24 07:30:06
psutil 是一个跨平台进程和系统监控的Python库,而 gopsutil 是其Go语言版本的实现。本文介绍了它的基本使用。 Go语言部署简单、性能好的特点非常适合做一些诸如采集系统信息和监控的服务,本文介绍的 gopsutil 库是知名Python库: psutil 的一个Go语言版本的实现。 安装 go get github.com/shirou/gopsutil 使用 CPU 采集CPU相关信息。 import "github.com/shirou/gopsutil/cpu" // cpu info func getCpuInfo() { cpuInfos, err := cpu.Info() if err != nil { fmt.Printf("get cpu info failed, err:%v", err) } for _, ci := range cpuInfos { fmt.Println(ci) } // CPU使用率 for { percent, _ := cpu.Percent(time.Second, false) fmt.Printf("cpu percent:%v\n", percent) } } 获取CPU负载信息: import "github.com/shirou/gopsutil/load" func getCpuLoad() {

Go语言安装tensorflow教程(亲测能用,解决 cannot find 包的问题)

南笙酒味 提交于 2019-12-24 01:54:01
我在安装tensorflow (go语言)时,按照官方教程来,发现有错误,经过几位外国友人的知道,解决问题,现贴出这个坑,供大家借鉴学习。 安装tensorflow 这里直接参考 官方链接 ,记住,tensorflow的 c语言版本 也要安装,才能使用,并且安装位置最好使用教程里的位置。 问题来了: 我们执行到这一步时: go test github.com/tensorflow/tensorflow/tensorflow/go 提示我们找不到包: cannot find package "github.com/tensorflow/tensorflow/tensorflow/go/genop/internal/proto/github.com/tensorflow/tensorflow/tensorflow/go/core" in any of: /home/go/src/github.com/tensorflow/tensorflow/tensorflow/go/genop/internal/proto/github.com/tensorflow/tensorflow/tensorflow/go/core (from $GOROOT) /home/go_work/src/github.com/tensorflow/tensorflow/tensorflow/go/genop

go语言性能调优工具

不想你离开。 提交于 2019-12-24 01:05:25
go-torch是Uber公司开源的一款针对Golang程序的火焰图生成工具,能收集 stack traces,并把它们整理成火焰图,直观地程序给开发人员。go-torch是基于使用BrendanGregg创建的火焰图工具生成直观的图像,很方便地分析Go的各个方法所占用的CPU的时间。 golang在语言层面集成了profile采样工具,在程序运行过程中可以获取cpu、heap、block、traces等执行信息,这些会涉及到runtime/pprof、net/http/pprof、runtime/trace等package。 来源: CSDN 作者: kesenzhang 链接: https://blog.csdn.net/kesenzhang/article/details/103671389