1.if - 他の場合 - 他的使用
package main
import "fmt"
func main() {
// 1.简单使用
var a=10
if a==10 { // 这个位置不能回车,不能换行
fmt.Println(a)
}
//2 if - else
var b =16
if b==20 {
fmt.Println("20")
}else{
fmt.Println("15")
}
//3 if - else if - else
var c =20
if c==20 {
fmt.Println("20")
}else if c==15 {
fmt.Println("15")
}else {
fmt.Println("10")
}
}
サイクル2.for
package main
func main() {
// 基本语法
for 初始化; 条件; 自增/自减{
}
}
使用する2.1シンプル
for a:=0; a<10; a++ {
fmt.Println(a)
}
2.2初期化漏れ
a :=0
for ;a<10 ; a++ {
fmt.Println(a)
}
2.3初期化インクリメントとデクリメントは省略されています
a :=0
for ;a<10 ; {
fmt.Println(a)
a++
}
2.4初期化インクリメントとデクリメントが省略されている(プレミアム)
注:(whileループと同様に)省略2つのセミコロン
a :=0
for a<10 {
fmt.Println(a)
a++
}
2.5。無限ループ
// 死循环一
for true{
fmt.Println("ak47")
}
// 死循环二(三部分都省略了)
for {
fmt.Println("ak47")
break
}
3.switch声明
3.1基本的な使用
package main
import "fmt"
func main() {
// 1.基本使用
var a = 10
switch a {
case 1: //相当于if a==1
fmt.Println("1")
case 5:
fmt.Println("5")
case 10:
fmt.Println("10")
}
}
3.2default
var b = 18
switch b {
case 1:
fmt.Println("1")
case 5:
fmt.Println("5")
case 10:
fmt.Println("10")
default: //相当于else
fmt.Println("你是蔡徐坤")
}
以上の3.3表現判決
(彼らは期間の設立に関する条件を満たしていなければなりません)
var c = 18
switch c {
case 1, 2, 5:
fmt.Println("1")
case 6, 7:
fmt.Println("5")
case 10, 15, 18:
fmt.Println("10")
default:
fmt.Println("你是蔡徐坤")
}
3.4自由な表現
var d = 30
switch {
case d == 20:
fmt.Println("1")
case d == 30:
fmt.Println("5")
case d == 40:
fmt.Println("10")
default:
fmt.Println("你是蔡徐坤")
}
3.5自由な表現
及び(および)&&または条件(または)条件||
var e = 20
var d = 30
switch {
case d == 30 && e==20: //同时成立
fmt.Println("1")
case d == 30:
fmt.Println("5")
case d == 40:
fmt.Println("10")
default:
fmt.Println("你是蔡徐坤")
}
3.6.fallthrough
次の場合に無条件に(侵入)
var f = 2
switch {
case f == 1:
fmt.Println(1)
case f == 2:
fmt.Println(2)
fallthrough //一旦碰到 fallthrough会无条件执行下面的语句
case f == 6:
fmt.Println(250)
fallthrough ////只要代码读到fallthrough与他紧挨着的语句,无论是否满足条件,他都会执行里面的内容
case f == 3:
fmt.Println(666)
}
4.アレイ
4.1定義配列
package main
import "fmt"
func main() {
// 同一类元素的集合, 不允许混合不同元素
// 定义数组(定义了一个大小为4的int类型数组)
var a [4]int // 四个为0的数组
fmt.Println(a) // int默认值为0
}
アレイを用いて4.2
(インデックス0から開始)
package main
import "fmt"
func main() {
var a [4]int
fmt.Println(a)
a[0] = 10
fmt.Println(a[0])
fmt.Println(a)
}
4.3定義および(3つの方法で)初期値を割り当て
package main
import "fmt"
func main() {
// 1.
//var b [4]int = [4]int{1,2,3,4}
// 2.
//var b = [4]int{1,2,3,4}
// 3.
b := [4]int{1,2,3,4}
fmt.Println(b)
}
4.4定義と初期値(それ以外)
package main
import "fmt"
func main() {
//var c [4]int = [4]int{1,2} // 只给前两个赋值
//var c [4]int = [4]int{1:2} // 只给第二个赋值,前面是索引,后面是值
//var c [4]int = [4]int{1:2,2:3} // 只给第二,三个个赋值
var c [4]int = [4]int{2:3,1:2} // 只给第二,三个个赋值
c[3] = 100
fmt.Println(c)
}
4.5固定アレイのサイズ(サイズは一度定義され、変更することができません)
package main
import "fmt"
func main() {
//var c [4]int = [5]int{1,2} // 错的
//var c [4]int = [4]int{1,2,3,4,5} // 错的
//var c [4]int = [4]int{1,2,3,4}
//a[4] = 10 //错的,最大索引为3
//fmt.Println(a[4]) //错的
}
4.6配列のサイズは、タイプの一部であります
package main
import "fmt"
func main() {
// 下面两个不是同一种类型(不能比较和加减)
var a [3] int
var b [4] int
}
4.7。値型(基準型)のアレイ
//(、すべてのものがオブジェクトであるため、不変のデータ型がオブジェクトであるPYそのアドレスをオブジェクト)正確ではありません
値が関数内で変更された場合、不変タイプ(Type値)関数のパラメータとして// pyが、それが元の値を変更しません
変数の// PY型(参照型:アドレス)関数へのパラメータとして、関数値の変化は、元の値が変更された場合
値で//行くタイプ、過去に、パラメータとしてコピーを渡されたときに、値がコピーと同等ですが、コピー過ぎています
package main
import "fmt"
func main() {
var d = [4]int{1,2,3,4}
test(d) // 当做参数传递过去
fmt.Println(d) // 原值没有改变
}
func test(d [4]int) {
d[0] = 100 // 修改值
fmt.Println(d) // 传过来的数组改变了,但原值不变
}
4.8配列の長さ(LEN)
package main
import "fmt"
func main() {
var e = [4]int{1,2,3,4}
fmt.Println(len(e))
}
サイクル4.9の配列
package main
import "fmt"
func main() {
// 方法一:
var a = [4]int{1,2,3,4}
for i:=0 ;i<len(a) ;i++ {
fmt.Println(a[i])
}
//方式二:(range关键字,它不是内置函数)把数组放在range关键字后
var b = [4]int{1,55,3,66}
for z:=range b{
//fmt.Println(z)
fmt.Println(b[z]) //这不是正统的用法
}
// 当用一个变量来接收时,这个变量就是索引
// 当用两个变量来接收时,这两个变量就是索引和值
for k,v:=range a {
fmt.Println(k,v)
}
// 当你不想取索引的时候也可以用下划线代替
for _,v:=range a {
fmt.Println(v)
}
}
4.10多次元配列
package main
import "fmt"
func main() {
var a [4][3]int
fmt.Println(a)
a[1][1] =100 // 修改值
fmt.Println(a)
}
4.11定義された多次元配列と初期値
package main
import "fmt"
func main() {
var a = [4][3]int{{1,1,1},{2,2,2},{3,3,3},{4,4,4}}
fmt.Println(a)
// 把数组第二个位置初值改为[6,6,6]
var b = [4][3]int{1:{6,6,6}}
fmt.Println(b)
var c = [4][3]string{1:{"6","6","6"}}
fmt.Println(c)
// 字符串的空值是空字符串 ""
// int类型空值是 0
// 数组的空值,取决于类型的空值
var d [4][3]string
fmt.Println(d)
}