<>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语言中使用fmt.Sprintf格式化字符串并赋值给新串
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(), unsafe.Sizeof()函数计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不过:
const a string = "abc" fmt.Println(a) const b = "abc" // println(b) fmt.Println
(b) // fmt.Printf(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)