GO语言【笔记】
在学习go语言时所做的一些笔记 ,希望能和大佬们一起学习进步!
1、基础语法
go语言的基本结构
package main
import (
"fmt"
)
func main(){
fmt.Println("hello wolrd") //注意输出时的Println,P要大写
}
学习一门语言首先要学会如何进行注释
package main
import (
"fmt"
)
func main(){
//单行注释
//在变量与运算符中间加入空格,使程序看起来更加美观,如:fruit = apples +oranges;
/*
多 行
注 释
*/
}
在go语言中代码末尾可以不加“;”
但是两行代码写在同一行时必须要有";"(放在LiteIDE中会自动变成 两行代码,别的编译器还不清楚)一般不推荐使用。
//不推荐使用↓
fmt.Println("hello wolrd");fmt.Println("hello wolrd2")
//推荐使用↓
fmt.Println("hello wolrd")
fmt.Println("hello wolrd2")
在go语言中使用格式化字符串并赋值给新串
var stockode = 123
var enddate ="2020-12-31"
var url="Cod=%d&endDate=%s"
var target_url = fmt.Sprintf(url, stockcode, enddate)
fmt.Println(target_url)
2、变量
1、声明变量
//声明方法1
var a string = "abc"
//声明方法2
var a string
a ="abc"
//例:
package main
import (
"fmt"
)
func main(){
var a string = "abc"
fmt.Println(a)
}
指定变量类型,如果没有初始化,则变量默认为零值
var a = "abc"
var b int
var c bool
fmt.Println(a, b, c)
/*
数值类型(包括complex64/128)为 0
布尔类型为 false
字符串为 ""(空字符串)
以下几种类型为 nil:
var a *int
var a []int
var a map[string] int
var a chan int
var a func(string) int
var a error // error 是接口
*/
2、没有var的变量声明
用 : = 去声明
出现在 : = 左侧的变量不应该是已经被声明过的,否则会导致编译错误
a := 1
这里是一个错误的例子:
var a int//这里是不需要去声明的如果声明就会报错
a:=10
fmt.Println(a)
//:=本身就是声明,所以:=所用的变量名必须是之前没有被声明过的否则会报错
这个才是正确的
a := 1
fmt.Println(a)
b := "abc" //var b string="abc"
fmt.Println(b)
3、多变量声明
var a, b int
a, b = 1, 2 //a,b := 1,2
fmt.Println(a, b)
这两种写法都可以
var a,b int =1,2
fmt.Println(a,b)
3、常量
1、声明常量
常量可以用len(), cap(), ()函数计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不过:
const a string = "abc"
fmt.Println(a)
const b = "abc"
// println(b)
fmt.Println(b)
// (b)
2、特殊常量iota
iota,特殊常量,可以认为是一个可以被编译器修改的常量。
第一个iota等于0,每当iota在新的一行被使用时,它的值都会自动加1
iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。
const (
a = "na"
b = iota //0
c //1
d = 0 //独立值,iota+1
e //0 iota+1
f = iota //4
g //5
)
fmt.Println(a, b, c, d, e, f, g)
//测试iota
var h int = 0
h = c+ f
fmt.Println(h)