这是我参与「第三届青训营 -后端场」笔记创作活动的第1篇笔记;
hello world
编写go代码首先要安装相应的sdk,然后配置环境变量; 与Java类似,首先写一个helloworld程序
package main//必须写main包
import "fmt"
func main(){
fmt.Println("hello")
}
在cmd窗口进入相应的文件夹内,执行命令:
go build 文件名.go进行编译,此时就会进行编译,编译后就会生成一个相应的exe文件,这个exe文件包含了当前程序所需的所有内容,也就是说可以放在一台没有安装golang sdk的电脑上运行(直接点击exe文件就可执行);
也可以直接编译+运行:go run 文件名.go
补充:
- go语言书写时无需加";"(加了也不报错),go编译器是一行一行进行编译的,并加上分号,因此我们一行就写一条语句,若写多条语句则会报错;
- 就如同java一样,用到相应的方法就需要导入相应的包,如
import "fmt",就是导入fmt的包,Println就是fmt包中的方法,[官方中文goAPI查询网站](urlGo语言标准库文档中文版 | Go语言中文网 | Golang中文社区 | Golang中国 (studygolang.com)) - go严格区分大小写,go是强类型语言;
- 大括号的写法是固定的,如下:
基本变量与类型
1次声明1个变量
变量声明有如下三种方法:
var age int//直接声明类型,可以不声明初始值,默认有初始值
var name="string"//go的类型推断
c:=true//更简洁的声明方法但必须声明初始值
使⽤var 变量名 类型名定义变量不写初始值时,每个变量会被初始化成其类型的默认值,例如: 整型和浮点型变量的默认值为0。 字符串变量的默认值为空字符串。 布尔型变量默认为false。 切片、函数、指针变量的默认为nil。
1次声明多个变量
var x,y,z="apple",1,true;//值为x="apple",y=1,z=true
x,y,z :="apple",2,true;//“:=”写法
【定义在打括号内的是局部变量,大括号外的为全局变量】
import "fmt"//传统定义全局变量方法
var x1,x2=1,true
var(//便捷方式定义全局变量
x3=2
x4="yes"
)
golang的数据类型
整数类型
golang默认声明的整数类型为int类型;
var b = 35
//printf函数的作用就是格式化的,类似于c语言中的占位符输出,具体参考golang官方api
fmt.Printf("%T",b)
//输出结果:int
浮点类型
浮点数通常会有精度损失,其中64位精度损失较小,建议使用; golang默认对应的浮点类型为64位的
字符型
没有单独的字符类型,用byte来定义单个字符
var c1 byte='c'
fmt.Println(c1)
//这样输出的是字母'c'对应的ASCII的值
var c2 byte='c'
fmt.Printf("%c",c2)
//这样输出的是该字符
转义字符
\转义字符:表示特殊含义
fmt.Println("aaa\nbbb")
//aaa
//bbb
//\n:换行
fmt.Println("aaa\bbbb")
//aabbb
//\n:退格(先输出aaa,输出bbb时后退一格)
fmt.Println("aaa\rbbb")
//bbb
//\r:光标回到本行开头,后续输入就会替换原有的字符
fmt.Println("aaa\tbbb")
//aaa bbb
//\t:空出一个Tab键的距离
fmt.Println("\"golang\"")
//"golang"
fmt.Println("aaa\\bbb")
//aaa\bbb
字符串类型
s:="apple"
fmt.Println(s)
s[0]='t'
fmt.Println(s)
这样会报错,因为go中字符串是不可变的,一旦定义好,其中字符的值就不能改变;
如果字符串中没有特殊字符(例如双引号单引号等等),直接传统方式就很方便,但如果有特殊字符的话,就要使用转义字符了,这样就很不方便,可以使用``来代替"",如下:
s1:=`"apple",'A'`
fmt.Println(s1)
//输出结果:"apple",'A'