什么是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导入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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 应用编程基础课第三讲:Go编程基础
- 应用编程基础课第三讲:Go编程基础
- 应用编程基础课第四讲:Go编程实践
- web编程基础---1.javascript基础(介绍,变量,数据类型)
- 《Julia 编程基础》正式出版!
- Java 并发编程基础 ① - 线程
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java多线程编程实战指南(设计模式篇)
黄文海 / 电子工业出版社 / 2015-10 / 59.00
随着CPU 多核时代的到来,多线程编程在充分利用计算资源、提高软件服务质量方面扮演了越来越重要的角色。而 解决多线程编程中频繁出现的普遍问题可以借鉴设计模式所提供的现成解决方案。然而,多线程编程相关的设计模式书籍多采用C++作为描述语言,且书中所举的例子多与应用开发人员的实际工作相去甚远。《Java多线程编程实战指南(设计模式篇)》采用Java(JDK1.6)语言和UML 为描述语言,并结合作者多......一起来看看 《Java多线程编程实战指南(设计模式篇)》 这本书的介绍吧!