変数、データ型、演算子、プロセス制御

変数

1.同一の部品

  • それができるだけの数字、英字、アンダースコア変数名

2.異なる部分

(1)のpython

  • ちょうど習慣でPythonの定数、あなたが変更することができます
  • Pythonの変数名は、ちょうどライン上の数字で始めることはできません
  • Pythonの変数の宣言は、直接次のとおりです。变量名 = 变量值

(2)golang

  • golang定数は、定数を定義、変更することはできません。const pi = 3.1415
  • 変数識別子の名前を呼ばれgolang、唯一の文字またはアンダースコアで始めることができます
  • 変数宣言をgolangにvar開始時および変数の型を指定していますvar 变量名 变量类型var 变量名 类型 = 表达式

第二に、基本データ型

1.同一の部品

  • 整数、浮動小数点、文字列、ブール値を持っています
  • Pythonでリストはgolangの1次元配列であります

2.異なる部分

(1)のpython

  • そこに一人のリスト、タプル、辞書、コレクションにパイソン
  • ブール値のタイトルケースパイソン

(2)golang

  • golangは、独自の複合型、バイト、及びルーン型、二次元、三次元の配列を有します
  • すべて小文字のgolangブール値

第三に、オペレータ

1.同一の部品

  • 両方の算術演算子、論理演算子、ビット演算子、代入演算子

  • pythonで関係演算子をgolangは比較演算子パイソンです

2.異なる部分

  • 余分な部材オペレータとパイソン、すなわち、in

第四に、プロセス制御

1.同一の部品

  • 私たちはされてif決定され、枝の両方のシングルとマルチブランチ構造
  • それは持っているfor循環を
  • そこbreak,continue、彼らの役割は、使用中に、ほんの少しの差が、中にPythonとgolangに同じです

2.異なる部分

(1)のpython

  • プロセス制御のpythonを持っているif,for,whilebreak 和 continueで利用可能なfor,while循環

  • 多分岐の使用if...elif...else...
  • 直接のpython条件はインデントの下を包む、コロンの後ろにコードを記述
  • ループ用のPythonをキーワードで使用されているinコロン、反復オブジェクトまたはイテレータ、ラップインデント下にコードを書きます

(2)golang

  • そこgolangフロー制御if,for,switch,gotobreak文を終了することができforswitchおよびselectコードブロック。continueだけでステートメントforサイクリング内での使用
  • break 和 continueラベルを続けることができます。ラベリング要件は対応して定義されなければならないforswitchselectのコードブロックに
  • breakコードブロックを終了することを示すタグに対応するタグが続きます。continue現在のサイクルの終了を示すタグが続く始め対応するラベルを循環させます

1. if裁判官

  • マルチブランチ使用if...else if...else if...else...

  • 囲碁言語規定if左ブラケットマッチが{なければなりませんif和表达式、上の同じ行に{他の位置にコンパイルエラーがトリガされます。同様に、elseマッチは{である必要がありelse、同じ行elseまた一方でなければならないifか、else if同じ行の右側の括弧

    // 1. 基本if判断
    func ifDemo1() {
        score := 65
        if score >= 90 {
            fmt.Println("A")
        } else if score > 75 {
            fmt.Println("B")
        } else {
            fmt.Println("C")
        }
    }
    
    // 2. if判断特殊写法(在 if 表达式之前添加一个执行语句,再根据变量值进行判断)
    func ifDemo2() {
        if score := 65; score >= 90 {
            fmt.Println("A")
        } else if score > 75 {
            fmt.Println("B")
        } else {
            fmt.Println("C")
        }
    }

2. forサイクル

  • ループのすべてのタイプのすべてのGo言語を使用することができますfor完了するためのキーワード。

  • ループスルーのためにbreakgotoreturnpanic声明力が循環から撤退します

    // for循环的基本格式如下:
    for 初始语句;条件表达式;结束语句{
        循环体语句
    }
    
    // 1. for循环普通写法
    func forDemo() {
        for i := 0; i < 10; i++ {
            fmt.Println(i)
        }
    }
    
    // 2. for循环的初始语句可以被忽略,但是初始语句后的分号必须要写
    func forDemo2() {
        i := 0
        for ; i < 10; i++ {
            fmt.Println(i)
        }
    }
    
    // 3. for循环的初始语句和结束语句都可以省略,例如:
    func forDemo3() {
        i := 0
        for i < 10 {
            fmt.Println(i)
            i++
        }
    }
    
    // 4. 无限循环
    for {
        循环体语句
    }

3. for rangeキーサイクル

  • 碁の言語を使用することができるfor range配列、スライス、文字列、マップチャネル(チャネル)を横断します。することでfor range、戻り値は次のルールを横断しています。
    1. グループ、スライス、文字列を返すインデックス値。
    2. リターンキーと値をマッピングします。
    3. 唯一のリターンチャンネル内のチャンネル(チャンネル)の値。

4。 switch case

  • 使用switchステートメントは、都合の条件判定値の大きな数であってもよいです
  • ゴー言語はそれぞれがする必要がありswitch一つだけ持つことができますdefaultブランチを

  • // 1. switch case 普通写法
    func switchDemo1() {
        finger := 3
        switch finger {
        case 1:
            fmt.Println("大拇指")
        case 2:
            fmt.Println("食指")
        case 3:
            fmt.Println("中指")
        case 4:
            fmt.Println("无名指")
        case 5:
            fmt.Println("小拇指")
        default:
            fmt.Println("无效的输入!")
        }
    }
    
    // 2. switch case 一个分支有多个值
    func testSwitch3() {
        switch n := 7; n {
        case 1, 3, 5, 7, 9:
            fmt.Println("奇数")
        case 2, 4, 6, 8:
            fmt.Println("偶数")
        default:
            fmt.Println(n)
        }
    }
    
    // 3. 分支还可以使用表达式,这时候switch语句后面不需要再跟判断变量
    func switchDemo4() {
        age := 30
        switch {
        case age < 25:
            fmt.Println("好好学习吧")
        case age > 25 && age < 35:
            fmt.Println("好好工作吧")
        case age > 60:
            fmt.Println("好好享受吧")
        default:
            fmt.Println("活着真好")
        }
    }
    
    // 4. fallthrough语法可以执行满足条件的case的下一个case,是为了兼容C语言中的case设计的
    func switchDemo5() {
        s := "a"
        switch {
        case s == "a":
            fmt.Println("a")
            fallthrough
        case s == "b":
            fmt.Println("b")
        case s == "c":
            fmt.Println("c")
        default:
            fmt.Println("...")
        }
    }
    // 输出:
    a
    b

5。 goto

  • gotoラベルによるコード間の無条件ジャンプ声明。

  • goto声明では、いくつかの助けの終了時に重複を避けるために、高速の中でループの外にすることができ

  • ゴー言語はで使用されるgotoいくつかのコードの実装を簡素化するために文

  • // 例如双层嵌套的for循环要退出时:
    func gotoDemo1() {
        var breakFlag bool
        for i := 0; i < 10; i++ {
            for j := 0; j < 10; j++ {
                if j == 2 {
                    // 设置退出标签
                    breakFlag = true
                    break
                }
                fmt.Printf("%v-%v\n", i, j)
            }
            // 外层for循环判断
            if breakFlag {
                break
            }
        }
    }
    
    // 使用goto语句能简化代码:
    func gotoDemo2() {
        for i := 0; i < 10; i++ {
            for j := 0; j < 10; j++ {
                if j == 2 {
                    // 设置退出标签
                    goto breakTag
                }
                fmt.Printf("%v-%v\n", i, j)
            }
        }
        return
        // 标签
    breakTag:
        fmt.Println("结束for循环")
    }

6. break 和 continue

// break 实例
func breakDemo1() {
BREAKDEMO1:
    for i := 0; i < 10; i++ {
        for j := 0; j < 10; j++ {
            if j == 2 {
                break BREAKDEMO1
            }
            fmt.Printf("%v-%v\n", i, j)
        }
    }
    fmt.Println("...")
}

// continue 实例
func continueDemo() {
forloop1:
    for i := 0; i < 5; i++ {
        // forloop2:
        for j := 0; j < 5; j++ {
            if i == 2 && j == 2 {
                continue forloop1
            }
            fmt.Printf("%v-%v\n", i, j)
        }
    }
}

おすすめ

転載: www.cnblogs.com/Mcoming/p/11973467.html