设为首页 加入收藏

TOP

Go语言学习笔记(一)Let's 干吧(二)
2018-10-19 15:54:13 】 浏览:269
Tags:语言学习 笔记 Let' 干吧
命令是go tool vet命令的简单封装。

go tool pprof

go tool pprof命令来交互式的访问概要文件的内容。

go tool cgo

可以使我们创建能够调用C语言代码的Go语言源码文件。

go env

go env用于打印Go语言的环境信息。

名称 说明
CGO_ENABLED 指明cgo工具是否可用的标识。
GOARCH 程序构建环境的目标计算架构。
GOBIN 存放可执行文件的目录的绝对路径。
GOCHAR 程序构建环境的目标计算架构的单字符标识。
GOEXE 可执行文件的后缀。
GOHOSTARCH 程序运行环境的目标计算架构。
GOOS 程序构建环境的目标操作系统。
GOHOSTOS 程序运行环境的目标操作系统。
GOPATH 工作区目录的绝对路径。
GORACE 用于数据竞争检测的相关选项。
GOROOT Go语言的安装目录的绝对路径。
GOTOOLDIR Go工具目录的绝对路径。

 

 

Hello World 

package main

import "fmt"

func main() {
    fmt.Println("Hello World")
}

  

程序基本语法

  1. 所有go源码以.go结尾;
  2. 注释不会被编译,单行注释是以 // 开头,多行注释以 /* 开头,以 */ 结尾;
  3. 标识符以字母或下划线开头,大小写敏感,_ 是特殊标识符,用来忽略结果;
  4. 保留关键字:
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
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

 

 

程序基本结构

1. 任何一个代码文件隶属于一个包

2. golang可执行程序,package main,并且有且只有一个main入口函数

3. 包中函数调用:

  1. 同一个包中函数,直接调用
  2. 不同包中函数,通过包名+点+函数名进行调用

4. 包访问控制规则:

  1. 大写意味着这个函数/变量是可导出的
  2. 小写意味着这个函数/变量是私有的,包外部不能访问

 

项目目录

$ tree project
project
├── bin
│   ├── example1
│   └── goroute_example
├── pkg
├── src
│   └── go_dev
│       └── day1
│           ├── example1
│           │   ├── debug
│           │   └── hello.go
│           └── goroute_example
│               ├── goroute
│               │   └── add.go
│               └── main
│                   └── main.go
└── vender

Src 源码文件
Bin 编译后二进制文件
vender  第三方
pkg 静态文件

 

简单栗子

$ tree project
project
├── bin
│   └── goroute_example
├── pkg
├── src
│   └── go_dev
│       └── test1
│           └── goroute_example
│               ├── goroute
│               │   └── add.go
│               └── main
│                   └── main.go
└── vender
[main.go]

package main

import (
    "fmt"
    "go_dev/test1/goroute_example/goroute"
)

func main() {
    pipe := make(chan int, 1)
    go goroute.Add(pipe, 10, 20)

    sum := <-pipe
    fmt.Println(sum)
}
[add.go]

package goroute

func Add(pipe chan int, a int, b int) {
    pipe <- (a + b)
}
$ go build -o bin/goroute_example go_dev/test1/goroute_example/main
$ bin/goroute_example 
30
$

 

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Github 开源项目(一)websocketd.. 下一篇Go语言学习笔记(四)结构体struc..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目