GO编程基础

栏目: Go · 发布时间: 5年前

什么是Go?
Go是一门并发支持、垃圾回收的编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。

Go的主要特点:

类型安全和内存安全
以非常直观和极低代价的方案实现高并发
高效的垃圾回收机制
快速编译(同时解决 C语言 中头文件太多的问题)
为多核计算机×××能提升中的方案
UTF-8编码支持

-----

Go存在的价值是什么?

[GO 在谷歌:以软件工程为目的的语言设计请添加链接描述](https://www.oschina.net/translate/go-at-google-language-design-in-the-service-of-software-engineering)

-----

Go命令

在命令行或终端输入 go  即可查看所有支持的命令

Go常用命令简介

go env  获取Go环境变量

PS C:\Users\scott> go env
set GOARCH=amd64              #系统类型
set GOBIN=C:\Users\scott\go\bin                                                   # 编译后生成的bin目录
set GOCACHE=C:\Users\scott\AppData\Local\go-build
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Users\scott\go                                                 #Go 开发目录
set GOPROXY=
set GORACE=
set GOROOT=D:\Applications\Go                                              #Go安装目录
set GOTMPDIR=
set GOTOOLDIR=D:\Applications\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:
\Users\scott\AppData\Local\Temp\go-build389094662=/tmp/go-build -gno-record-gcc-switches

go get :获取远程包(需要提前安装git或hg)
go run: 直接运行程序
go build:测试编译, 检查是否有编译错误
go fmt:  格式化源码
go install :编译包文件并编译整个程序
go test:运行测试文件
go doc: 查看文档

-----
第一个程序:
package main

import "fmt"

func main(){
    fmt.Println("Hello world! 你好,世界!")
}

GO编程基础

-----

Go导入package格式

import "fmt"
import "os"
import "time"
import "io"

或

import (
    "fmt"
    "os"
    "time"
    "io"
)

同理

//常量定义
const(
    PI = 3.14
    const1 = "STRING"
    const2 = 2
    const3 = 3
)
//全局变量
var(
    name = "gopher"
    name1 = "1"
    name2 = 2
    name3 = 3
)

//一般类型声明
type(
    newType int
    type1   float32
    type2   string
    type3   byte
)

导入包的别名

import   bieming "fmt"

import   . "fmt"       (前面有一点,代指省略,有这功能,但不建议省用法)

只能导入使用到的包,未使用到的需要用双斜线   // 内容   或  //*-----内容-------*//注释

可见性规则

Go语言中,使用大小写来决定该常量、变量、类型、接口、结构、或函数是否可以被外部包所调用:

根据约定,
函数名首字母小写,即为private  私有   外部无法调用
函数名首字母大写,即为public   公有   外部可以调用

Go基本类型

- 布尔型:bool
    - 长度:1字节
    - 取值范围: true,false
    - 注意事项:不可以用数字代表true或false

- 整型:int/uint
    -根据运行平台可能为32或64位

- 8位整型: int8/uint8
    -长度:1字节
    -取值范围:-128~127/0~255

- 字节型:byte(uint8别名)

- 16位整型:int16/uint16
    - 长度:2字节
    - 取值范围:-32768~32767/0~65535
- 32位整型:int32(rune)/uint32
    - 长度:4字节
    - 取值范围:(-2147483648 到 2147483647)

- 64位整型:int64/uint64
    - 长度:8字节
    - 取值范围:(-9223372036854775808 到 9223372036854775807)

- 浮点型:float32/float64
    - 长度:4/8字节
    - 小数位:精确到7/15位小数位

类型名称    有无符号    bit数
int8    Yes      8
uint8   No       8
uint16  No       16
int16   Yes      16
int32   Yes      32
int64   Yes      64
uint32  No       32
uint64  No       64
int     Yes     等于cpu位数
uint    No      等于cpu位数
rune    Yes     与 int32 等价
byte    No      与 uint8 等价
uintptr No      -

- 复数类型:complex64/complex128
    - 长度:8/16字节

- 足够保存指针的32位或64位整型:uintptr

- 其他类型:
    - array、struct、 string
- 引用类型:
    - slice、map、chan

- 接口类型:interface
- 函数类型:func

类型零值:

    零值不等于空值,而是当变量被声明为某种类型后的默认值,通常情况下值类型默认值为0,bool为false,string为空字符串

变量声明与赋值:

全局变量使用var声明

局部变量(函数体)可以使用下面方式:

   var a int = 1
     var a,b,c,d = 1, 2, 3, 4
     a,b,c,d := 1, 2, 3, 4

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java多线程编程实战指南(设计模式篇)

Java多线程编程实战指南(设计模式篇)

黄文海 / 电子工业出版社 / 2015-10 / 59.00

随着CPU 多核时代的到来,多线程编程在充分利用计算资源、提高软件服务质量方面扮演了越来越重要的角色。而 解决多线程编程中频繁出现的普遍问题可以借鉴设计模式所提供的现成解决方案。然而,多线程编程相关的设计模式书籍多采用C++作为描述语言,且书中所举的例子多与应用开发人员的实际工作相去甚远。《Java多线程编程实战指南(设计模式篇)》采用Java(JDK1.6)语言和UML 为描述语言,并结合作者多......一起来看看 《Java多线程编程实战指南(设计模式篇)》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

SHA 加密
SHA 加密

SHA 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试