一·if -else
(1)
package main import "fmt" // if - else //func main(){ // // 先定义 一个变量 // var a int=90 // // if 条件{} 大括号和条件之间不能进行换行 // // if a>90{ // fmt.Println("大于90") // }else if a<90{ // fmt.Println("a 小于90") // }else{ // fmt.Println("a等于90") // } // //}
(2)在条件作用域中定义的变量可以 使用 作用域的问题
// 在条件作用域中定义的变量可以 使用 作用域的问题 // 在函数中 进行条件判断 func main(){ if a:=90;a>90{ fmt.Println("大于90") } else if a<90{ fmt.Println("小于90") }else{ fmt.Println("等于90") } }
二. 包的使用
// 包的使用 package main import "mypackage" import "fmt" func main() { //想使用mypackage包下的test函数和test1函数 mypackage.Test1() fmt.Println("xxx") } 使用外部的包必须首字母大写 使用同一包内的函数导入 导入的包必须一致
三.for 循环
package main import "fmt" // for 循序 func main(){ // 1.for 语法 //for i:=0;i<10;i++{ // fmt.Println(i) //} // 三部分,都可以省略 // (1)先省略第一部分 i:0 //i:=0 //for ;i<10;i++{ // fmt.Println(i) // (2)省略第三部分 //i:=0 //for ;i<10;{ // i++ // fmt.Println(i) // (3)省略第二部分 // for ;;{ // fmt.Println("yyyy") // 死循环 没有哦终止条件 相当于while True //} // for { // // 死循环的写法 // fmt.Println("hjah") // }
(2)break 和continue 的用法
package main import "fmt" // for 循序 func main(){ // (4) break 和continue //for i:=0;i<20;i++{ // if i == 5{ // // 如果i 等于5 就直接终止种鸽函数 // break // } // fmt.Println(i) //} // continue 的用法 for i:=0;i<20;i++{ if i==5{ continue } fmt.Println(i) // 0 不等于5 打印 过滤掉5 的值 } }
(3)switch 的基本用法
package main import "fmt" // switch的基本语句 func main(){ // 基本用法 a:=11 switch a { case 1: fmt.Println("我是1") case 2: fmt.Println("我是2") case 10: fmt.Println("我是10") // 设置以上都不满足 我们default default: fmt.Println("我是默认值") }
(2)多值匹配
package main import "fmt" // switch的基本语句 func main(){ // 基本用法 a:=12 switch a { case 1,4,5: fmt.Println("我是1") case 2,6,8: fmt.Println("我是2") case 10,11,12: fmt.Println("我是10,11,12 中的12") // 设置以上都不满足 我们default default: fmt.Println("我是默认值") } }
(3)无值表达式
unc main(){ // 基本用法 a:=10 switch { case a>10: fmt.Println("大于10") case a<10: fmt.Println("小于10") default: fmt.Println("默认值") }
(4)//Fallthrough 的用法:穿透, 无条件的执行下一个case 的内容
package main
import "fmt"
// switch的基本语句
func main(){
// 基本用法
//switch a {
//case 1,4,5:
// fmt.Println("我是1")
//
//case 2,6,8:
// fmt.Println("我是2")
//case 10,11,12:
// fmt.Println("我是10,11,12 中的12")
//// 设置以上都不满足 我们default
//default:
// fmt.Println("我是默认值")
// 无表达式的switch
a :=10
switch a {
case 1:
fmt.Println("1")
case 2:
fmt.Println("2")
case 10:
fmt.Println("10")
test()
fallthrough
case 12:
fmt.Println("穿透")
}
}
// 外部的函数
func test(){
fmt.Println("穿透1")
}
(5)数组和迭代及多维数组
package main import "fmt" // 数组 值传递(不可变)和值的引用(可变) func main(){ // var a [5]int //定义了一a 的数组 长度为5的int类型的数组 // a[1]=999 // 把索引为1的位置换成100 // (1)定义并未赋初值 //var a [5]int //fmt.Println(a) // [0 0 0 0 0] //a[1]=999 //fmt.Println(a) // [0 999 0 0 0] // (2)定义并切赋初值 // var b[6]int=[6]int{1,2,3,4,8} // 长度必须小等于6 不足0补全 // fmt.Println(b) // var b=[6]int{1,2,3} // [1 2 3 0 0 0] // fmt.Println(b) // (3)第67 的位置设置为6767 a[-9]是不支持的哦 // a:=[100]int{1,2,3,65:6767} // fmt.Println(a) // (4)数组是值类型 ()>>> 所有的函数传参都是copy 传递 // a:=[4]int{1,2,3} // test1(a) // 函数加括号执行调用 [100,2,3,0] 将0 的位置1 替换成100 // fmt.Println(a) // 打印[1,2,3,0] // 原值是不会发生改变的 // (5) 数组的长度 内置函数的len //a:=[10]int{6,6,7} //fmt.Println(len(a)) // (6)数组的大小是类型的一部分 // var a [4]int=[4]int{1,2} // var b [5]int=[5]int{4,5} // fmt.Println(a=b) 没办法进行大小的比较 // (7)go 中的与(&&) 或(||) 非! // a:=10 // if (a>10||a<6){ // fmt.Println("ye") // // }else if !(a>10) { // fmt.Println("ok") //} // (8)数组的迭代 //a:=[5]int{1,4,5,6,70} //for i:=0; i<len(a);i++{ // fmt.Println(a[i]) // 获取数字的值 索引取值 //} // 通过range迭代 //for i,v:=range a{ // fmt.Println(i,v) // i 为索引 v 为值 //} // (9) 多维数组 var a [5][2]int a[0][1]=10 fmt.Println(a) // [[0 10] [0 0] [0 0] [0 0] [0 0]] } // 外部函数b func test1(b [4]int){ b[0]=100 fmt.Println(b) }