一. 变量
1.函数的特征
package main
// 导入语句 import "fmt" // fmt.Println("from G:") //非法 // 程序的入口函数 func main() { fmt.Println("from G:") }
2.标识符:字母数字下划线,只能以字母和下划线开头
3.25个关键字,37个保留字
break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var
4.静态语言:变量必须要声明类型 eg:go 动态语言:变量无需声明类型,eg: pyhon
5.注释
// 单行注释
/* 多行注释 */
6.语法知识
// 第一行必须声明包名 package main // 导入fmt包 import "fmt" // 1.申明变量 // 局部变量必须先声明再使用,而且变量必须要使用,否则报错 // 全局变量可以只声明不使用 // 同一个作用域中不能重复声明同一个变量 var 变量名 变量类型 // 单独声明 var name string // 默认为空字符串"" var age int // 默认为0 var height float32 // 默认为0 var isOK bool // 默认为false // 切片、函数、指针变量的默认为nil //批量声明 var ( name string age int height float32 isOK bool // ) //变量赋值与使用 func main() { name = "理想" age = 16 // height = 171.5 isOK = true fmt.Print(height) fmt.Print(name) // 末尾没有换行符 fmt.Printf("age:%d", age) // 格式化输出,末尾没有换行符 fmt.Println() // 打印空行 fmt.Printf("height:%f\n", height) // \n即换行符,%f默认保留6位小数 fmt.Println(isOK) //末尾有换行符 } // 2.其它 func main() { // //声明变量同时赋值 var s1 string = "lhj" fmt.Println(s1) // //类型推导(根据值判断变量是什么类型) var s2 = 11 fmt.Println(s2) // //简短声明,只能在函数里面用 s3 := 0.5 fmt.Println(s3) } // 3.匿名变量 // 如果函数返回值有多个,我们可以只接收一个,另一个用下划线 _ 接收 // 这样的好处是不占用内存,而且也避免了后面不使用该变量而报错的情况 func foo() (int, string) { return 10, "Q1mi" } func main() { x, _ := foo() _, y := foo() fmt.Println("x=", x, y) fmt.Println("y=", y) } // 4.总结,四种声明变量的方式 ① var name string 函数内部: string="xxx" ② var name string = "xxx" ③ var name = "xxx" ④ name := "xxx"
二. 常量
1.常量const的特征:
const pi = 3.1415 const e = "xxx"
可以批量定义
const ( pi = 3.1415 e = "xxx" )
const同时声明多个常量时,如果省略了值则表示和上面一行的值相同。 以下示例中,n1,n2,n3都是100
const ( n1 = 100 n2 n3 )
2. iota
iota加
一(iota可理解为const语句块中的行索引, 定义枚举时很有用)举例
const ( n1 = iota //0 n2 //1 n3 //2 n4 //3 )
使用 _
跳过某些值
const ( n1 = iota //0 n2 //1 _ n4 //3 )
声明中间插队
const ( n1 = iota //0 n2 = 100 //100 n3 = iota //2 n4 //3 ) const n5 = iota //0
多个iota
定义在一行
const ( a, b = iota + 1, iota + 2 //1,2 c, d //2,3 e, f //3,4 )
定义数量级 (这里的<<
表示左移操作,1<<10
表示将1的二进制表示向左移10位,也就是由1
变成了10000000000
,也就是十进制的1024。同理2<<2
表示将2的二进制表示向左移2位,也就是由10
变成了1000
,也就是十进制的8。)
const ( _ = iota KB = 1 << (10 * iota) MB = 1 << (10 * iota) GB = 1 << (10 * iota) TB = 1 << (10 * iota) PB = 1 << (10 * iota) )
--- 君子处其实,不处其华;治其内,不治其外 张居正 ----
原文:https://www.cnblogs.com/jiangzongyou/p/12153172.html