Golang

默认安装目录: /usr/local/go/
编译器启动文件: /usr/local/go/bin/go

配置环境

export PATH=/usr/local/go/bin:$PATH

  • src 放置编写的go代码和依赖

    • crm

      • app.go

bin 编译可执行文件

pkg 包文件 公共文件

Go安装目录

export GOROOT=/usr/local/go

代码和编译之后的文件相关代码

export GOPATH=/Users/zoe/GolangProjects

存放可执行编译之后的文件

export GOBIN=/Users/zoe/GolangProjects/bin

生效

记得mac要换成bash的shell

vim .bash_profile
source ~/.bash_profile
~/.profile #不一定有用
编译运行

go run

命令等价于先执行 go build 生成可执行文件,然后再运行可执行文件,相当于二合一的操作。
编译器的run会生成一个可执行文件在/private/var/folders路径下然后执行

go build

执行完命令之后,就会在当前项目目录下自动生成一个可执行文件(默认文件名为项目),然后在执行此可执行文件即可。

go install

命令内部不仅可以对代码进行编译并还会将编译好的文件放在 $GOPATH/src 和 $GOPATH/pkg目录。

如果blog项目没有main包(只是一个类库),则install生成的 包文件 会放在 $GOPATH/pkg 目录;有main包则生成的 可执行文件 放在$GOPATH/src 目录。

mac系统会自动生成darwin_amd64目录,根据系统不同生成此目录会有差异。

一个文件夹为一个包
一个包下的所有文件package名必须一样,可以不和文件夹名一样

main包

必须写main函数,整个项目的入口。编译生成一个可执行文件。
不是main包,只有main函数则生成包文件,放在pkg 包名.a

非main包

代码分类

import (
"fmt"
"zoe/api"
)

func main() {
Add()
apia.BaiDu()
apia.Google()
}

import是路径名 api
调用的是包名apia
一个文件夹下有多个go文件,它们的package名必须一样,但可以不和文件夹名一样;
//文件中编写功能时,首字母大写
//大写时公有,小写私有当前自己的包使用

输出

内置函数

print
println

fmt包

fmt.Pring
fmt.PrintLn

进程里有stdin/stdout/stderr

name := "lalala"
nickname := name
fmt.Println(name, &name )
fmt.Println(nickname, &nickname )

int、string、bool是值类型

输入

有黄色背景表示有返回,但没有获取
有多个返回不能, :=写,可以直接写,=

count,err := fmt.Scan(&name, &age)   //回车,无法结束,必须等到所有输入
count,err := fmt.Scanln(&name, &age)  //回车,可以直接结束
_, _ = fmt.Scanf("哈哈哈%s 急急急", &name) //需要加空格分割,否则不稳定

用stdin的方式可以解决输入有空格的问题

    reader := bufio.NewReader(os.Stdin)  //标准输入
    line, _, _ := reader.ReadLine()  //所有都是_才去掉:
    //line, 从stdin中读取一行数据(字节集合 转化为 字符串)
    //isPrefix  reader默认一次能读4096个字节(4096/3个汉字)一次性读完
    //        1.isPrefix==false
    //        2.先读一部分,isPrefix==true,再去读取isPrefix==false

    data := string(line)
    fmt.Println(data)

go里10进制是int型
2 8 16进制是string

你可能感兴趣的:(Golang)