函数声明和注释
- 函数声明 :func 函数名字(参数列表)(返回值列表){}
- 注释,两行注释,单行注释:// 多行 /**/
//函数举例
func add(){}
func add(a int , b int){}
fun add(a int , b int)(int ,int){}
常量
- 常量才有const 声明,代表 只读,不能赋值修改
- 智能声明布尔,数字(int系列 float系列) complex 复数 string
举例
const name = "huluwa"
const number int64 = 5656
const float float64 = 5656.466
//成组声明
const (
a = 0
b = 1
c = 2
)
//也可以
const (
a = iota 自动累加
b //1
c //2
)
变量
var 变量名 变量类型
var identifier type
举例
var a int //默认0
var b string //默认 ""
var c bool //m默认false
var d int = 8
var hi = "hello World"
//函数体内可以使用
n :=45 //可以回自己识别类型
值类型和引用类型
1.值类型:变量直接村处值,内存在栈中分配(int、float、bool、string以及数组和struct)
2.引用类型变量存储的是一个地址,内存通常在堆上分配,通过GC回收(指针、slice、map、chan)
- 引用 ref ⇒ 地址 ⇒值
- 值类型 var i =5 => i ---> 5
变量作用域
1.在函数内部声明的变量叫做局部变量,生命周期仅限于函数内部。
2.在函数外部声明的变量叫做全局变量,生命周期作用于整个包,如果是大写的,
则作用于整个程序。
数据类型和操作符
- bool 只能存 true 和 false
var a bool
var a bool = true
var a = true
- 相关操作符 ! ,&& ||
var a bool = true
var b bool
fmt.Println(!a) //false
fmt.Println(!b) //true
fmt.Println(a&&b) //false
fmt.Println(a||b) //true
- 数字类型,主要有int、int8、int16、int32、int64、uint8、uint16、uint32、uint64、float32、float64
- 类型转换,type(variable),比如:var a int=8; var b int32=int32(a)
- 逻辑操作符: == 、!=、<、<=、>和 >=
var a int = 10
if ( a > 10 ) {
fmt.Println(a)
}
- 数学操作符:+、-、*、/等等
package main
Import ”fmt”
func main() {
var a int = 10
var b = a + 10
}
- 字符类型:var a byte
- 字符串类型: var str string
//字符串表示两种方式: 1)双引号 2)`` (反引号)
package main
import “fmt”
func main() {
var str = “hello world\n\n”
var str2 = `hello \n \n \n
this is a test string
This is a test string too·`
fmt.Println(“str=“, str)
fmt.Println(“str2=“, str2)
}