Go语言基础

Go程序的组成

Go的代码通过包(package)组织,一个包由多个源码文件组成(.go文件)

每个源代码文件,都由package package_name声明语句起始,表示文件位于哪个包,main包定义一个独立可执行的程序,其内部的main函数是程序的入口

之后是导入依赖包(import package_name

第三部分是源代码

hello,world!

package main // 声明所属包

import "fmt" // 导入fmt包

// main函数,使用func关键字声明函数
func main() { // 花括号必须与函数定义语句在同一行,if、switch、for等语句的花括号同样如此,这一点与C的代码风格迥异,类似Java
	fmt.Println("hello, world!") // 使用了fmt包中的一个标准输出函数
}

goimports工具可以根据代码需要,自动地添加和删除import声明

go get golang.org/x/tools/cmd/goimports

基础语法

分号的问题

Go虽然不需要在语句末尾添加分号,实际上编译器会把特定符号后的换行符转换为分号,因此换行符的添加位置会影响Go代码的正确编译

如果行末是标识符、整数、浮点数、虚数、字符或字符串文字、关键字 breakcontinuefallthroughreturn 中的一个、运算符和分隔符 ++--)]} 中的一个,如果在他们后面加换行符,则有可能会出错

Go命名风格

任何命名都要符合这个规则:以字母或下划线开头,后面可以有任意数量的字母、数字、下划线。

推荐使用驼峰式命名

声明

声明变量

var varName int32 = 1 + 6 / 3 
varName := 222 // 简短声明,用于初始化和声明局部变量,类型根据表达式自动推导

var是声明变量的关键字,varName为变量名,int32为变量类型,可省略,省略时编译器将会自行判断变量类型

数值类型零值为0,布尔类型零值为false,字符串类型零值为空串,接口和引用类型的零值为nil,数组等聚合类型零值为其元素类型对应零值

package main

import "fmt"

func main() {

	var helloStr string = "hello, world!"
	println(helloStr)

	shortStr := "short defination:string"
	fmt.Println(shortStr)

	shortFloat := 10 + 0.1
	fmt.Println(shortFloat)

	var str string
	fmt.Println(str) // 输出一个空串

	var intval int32
	fmt.Println(intval) // 输出0

	var floatVal float64
	fmt.Println(floatVal)

	var boolVal bool
	fmt.Println(boolVal) // 输出False

}

声明常量

const conNmae

声明类型

type

声明函数

func funcName(f float32, d float64) int32 {
    return 4
}

其中func为声明函数的关键字,fucName为函数名,f float32, d float64为形参列表,int32为返回值列表

作用域

如果一个常量、变量在包内声明,那么这个常量、变量的作用范围是整个包,包内的任何源文件都可以访问

如果一个常量、变量在函数内声明,那么这个常量、变量的作用范围是这个函数内部,其他函数和包都不可以访问

参考

Go语言圣经The Go Programming Language中文版)

posted @ 2023-01-13 03:53  HelliWrold1  阅读(32)  评论(0编辑  收藏  举报