目录
一、变量
1、语法:var 变量名称 变量类型
2、如果定义变量的时候没有进行初始化,会使用默认初始值
3、初始化声明 :=,下面两个方式是等价的
4、因式分解关键字写法(一般用于全局变量)
二、常量
1、语法:const 常量名称 常量类型
2、特殊的常量iota
三、运算符
四、基本逻辑语句
1、条件语句
2、循环语句
五、函数
1、语法
2、和C++的不同之处
3、注意点
4、闭包
5、方法
局部变量一旦被声明必须被使用,但是全局变量可以不被使用。
在程序运行的时候不会被修改的量。
可以被编译器修改的常量,iota在const关键字出现的时候被重置为0(const内部的第一行之前)const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。
用法(1) 枚举值
const( a = itoa b c ) // 输出为 0 1 2用法(2)
const( a = itoa b c d = "pfei" e f = 100 g h = itoa i ) // 输出结果为 0 1 2 pfei pfei 100 100 7 8用法(3)
const( i=1<<iota j=3<<iota // 3左移一位 k // 3左移两位 l // 3左移三位 ) // 输出结果 1 6 12 24注意:当变量没有给值的时候就用上一个变量使用的值,然后运算的时候iota常量会自加1。
1、算数运算符
+、-、*、/、%、++、--
2、关系运算符
==、!=、>、<、>=、<=
3、逻辑运算符
&&、||、!
4、位运算符
&、|、^(异或)、<<、>>
5、运算符也可以像C++一样用于赋值符号的左侧,表示先运算再赋值,例如:*=、<<=、&=
6、其他运算符
& 返回变量地址
* 指针变量
样例:
// if if 布尔表达式{ ... } // if...else,注意此处else的位置,放到其他地方报错 if 布尔表达式{ ... }else{ ... ) //switch switch var0{ case var1: ... case var2: ... default: ... } // type switch switch i := x.(type) { case nil: fmt.Printf(" x 的类型 :%T",i) case int: fmt.Printf("x 是 int 型") case float64: fmt.Printf("x 是 float64 型") case func(int) float64: fmt.Printf("x 是 func(int) 型") case bool, string: fmt.Printf("x 是 bool 或 string 型" ) default: fmt.Printf("未知型") } // 通过fallthrough语句来强制执行下一个case var v bool = false switch v{ case false: fmt.Println("1、case 条件语句为 false") fallthrough case true: fmt.Println("2、case 条件语句为 true") fallthrough case false: fmt.Println("3、case 条件语句为 false") fallthrough case true: fmt.Println("4、case 条件语句为 true") case false: fmt.Println("5、case 条件语句为 false") fallthrough default: fmt.Println("6、默认 case") } // select后补样例:
numbers := [6]int {1, 2, 3, 5} for i, x := range numbers{ fmt.Println("第%d位x的值=%d\n", i, x) }goto语句
var a int = 10 /* 循环 */ LOOP: for a < 20 { if a == 15 { /* 跳过迭代 */ a = a + 1 goto LOOP } fmt.Printf("a的值为 : %d\n", a) a++ }方法:就是结构体或者类中实现功能的函数,java中就只有函数
函数:实现某些功能,不用放到类或者结构体中
定义语法:func (变量名 变量类型) 函数名(参数) 返回值类型 {}
package main import ( "fmt" ) /* 定义结构体 */ type Circle struct { radius float64 } //该 method 属于 Circle 类型对象中的方法 func (c Circle) getArea() float64 { //c.radius 即为 Circle 类型对象中的属性 return 3.14 * c.radius * c.radius } func main() { var c1 Circle c1.radius = 10.00 fmt.Println("圆的面积 = ", c1.getArea()) }
