go入门(2)——基础语法

Go内置关键字,25个均为小写
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程序是通过package来组织的,只有package名为main的包可以包含main函数,一个可执行程序有且只有一个main包,通过import关键字导入其他非main包,在函数体外使用var进行全局变量的声明和赋值。

根据约定,函数名首字母小写即为private,大写即为public

go的常用命令
go get 获取远程包(需提前安装git,github下载或hg,google下载)
go run 直接运行程序
go build 测试编译,检查是否有编译错误
go fmt 格式化源码(部分IDE在保存时自动调用)
go install 编译包文件并编译整个程序(编译下载的包文件放在bin目录下,然后才编译程序放在pkg下)
go test 运行测试文件,以_test.go结尾的文件
go doc 查看文档
godoc -http-:8080 建立本地官网查看函数,如

//函数程序的包
package main

//导入其他的包
import "fmt"

//常量的定义
const p = 3

//全局变量的声明与赋值
var (
    name = "name"
    a    = "aabb"
)

//一般类型声明
type t int

//结构的声明
type ge struct{}

//接口的声明
type golang interface{}

//由main函数作为程序入口启动点
func main() {
    fmt.Println("hello,你好")
    fmt.Print(a)
}

变量:
布尔型:bool 1字节 true,false
整形:int/uint 根据运行平台可能为32位或64位
8位整形:int8/unit8 1字节 -128~127/0~255
字节型:byte(unit8别名) int32(rune)
浮点型:float32/float64,精确到7/15位
复数:complex64/complex128 长度8/16字节
足够保存指针的32位或64位整数型:uintptr
其他值类型:array,struct,string
引用类型:slice/map/chan
接口类型:interface
函数类型:func
类型零值:零值并不等于空值,而是当变量被声明为某种类型后的默认值,通常情况下值类型的默认值为0,bool为false,string为空字符串

package main

import (
    "fmt"
)

var b = 99

func main() {
    //var a int
    //fmt.Println(a)
    fmt.Println(b)
}
package main

import (
    "fmt"
)

const (
    a = 'A'
    b = iota
    c = 'B'
    d = iota
)
const (
    e = iota
)

func main() {

    fmt.Println(a)
    fmt.Println(b)
    fmt.Println(c)
    fmt.Println(d)
    fmt.Println(e)
}

常量:
1.常量的值在编译时就已经确定,常量的定义格式与变量基本相同,等号右侧必须是常量或常量表达式,常量表达式中的函数必须是
内置函数。
2.常量的初始化规则与枚举:在定义常量组时,如果不提供初始值,则表示将使用上行的表达式,使用相同的表达式不代表具有相同
的值,iota是常量的计数器,从0开始,组中每定义一个常量自动递增1;通过初始化规则与iota可以达到枚举的效果;每遇到一个
const关键字,iota就会重置为0
3. GO中运算符均是从左至右结合
优先级,从高到低
^ ! (一元运算符)
* / % << >> & &^ + - | ^ (二元运算符)
== != < <= >= >
<- (专用于channel,并发)
&&
||

注:^ 一边是数字的话是一元运算符,两边是数字的话是二元运算符
& 位运算符 && 短路运算符

package main

import (
    "fmt"
)

/*
6  0110
11 1011
&  0010=2
|  1111=15
^  1101=13
&^ 0100=4
*/
//结合常量的iota与<<运算符实现计算机储存单位的枚举
const (
    B float64 = 1 << (iota * 10)
    kb
    mb
    Gb
)

func main() {
    fmt.Println(2 << 2 >> 1)
    fmt.Println(kb)
    fmt.Println(mb)
    fmt.Println(Gb)
}

上一篇:go入门(1)——基础知识

下一篇:go入门(3)—— 指针和切片

猜你喜欢

转载自blog.csdn.net/lx_Frolf/article/details/82287871