golangでコードを書く方法

王林
リリース: 2023-05-15 11:50:07
オリジナル
602 人が閲覧しました

Golang は比較的新しいプログラミング言語として、特にバックエンド開発の分野でますます注目と支持を集めています。この記事では、初心者がすぐに始められるように、Golang の基本的な構文と一般的なプログラミング パラダイムを紹介します。

1. 基本構文

  1. 変数

変数を宣言するにはさまざまな方法があり、var キーワードまたは := 演算子を使用できます。型推定:

var i int // 默认值为0
i = 10 

j := "Hello World" // 自动推导类型为string
ログイン後にコピー
  1. Constant

定数ライフでは、列挙型、値、文字列などに使用できる const キーワードが使用されます。:

const (
    Pi     = 3.14159265358979323846
    Apples = 1 << iota  // Apples的值是1左移0位,即1
    Oranges            // Oranges的值是1左移1位,即2
    Bananas            // Bananas的值是1左移2位,即4
)
ログイン後にコピー
  1. 制御構造

Go 言語の制御構造は、if-else、switch-case、for ループ、ジャンプ ステートメントなど、他の言語と同じです:

if i > 10 {
    fmt.Println("i is greater than 10")
} else {
    fmt.Println("i is less than or equal to 10")
}

switch {
    case i < 0:
        fmt.Println("i is negative")
    case i > 0:
        fmt.Println("i is positive")
    default:
        fmt.Println("i is zero")
}

for i := 0; i < 10; i++ {
    fmt.Println(i)
}

// 跳转语句
goto label1
fmt.Println("this line will never get executed")
label1:
fmt.Println("jumped to label1")
ログイン後にコピー
  1. 配列とスライス

配列は値型であり、長さは宣言時に決定されますが、スライスは参照型であり、長さは動的に変化します。スライスは、make 関数を通じて作成することも、スライス操作によって生成することもできます。

// 数组
var arr [5]int
for i := 0; i < 5; i++ {
    arr[i] = i
}

// 切片的创建和操作
var slice1 []int = arr[1:3]
slice2 := make([]int, 5, 10) // 第2个参数是长度,第三个参数是容量
slice2 = append(slice2, 1, 2, 3)
ログイン後にコピー
  1. 構造体とポインター

Golang の構造体は、フィールドを定義するだけでなく、メソッドを定義します。構造体のポインタ型では、. 演算子と -> 演算子を使用してフィールドとメソッドにアクセスできます:

type Person struct {
    name string
    age  int
}

func (p Person) SayHello() {
    fmt.Println("Hello, my name is", p.name, ", and I am", p.age, "years old.")
}

func main() {
    p := Person{name: "Alice", age: 30}
    p.SayHello()
    pp := &p
    fmt.Println(pp.age)
}
ログイン後にコピー

2. プログラミング パラダイム

  1. オブジェクト指向プログラミング

Golang のオブジェクト指向プログラミングも、構造とメソッドに大きく依存します。ここでは、インターフェイス タイプを使用して共有メソッドを定義できます。

type Animal interface {
    Speak() string
}

type Dog struct {
    name string
}

func (d Dog) Speak() string {
    return "Woof! I am " + d.name
}

func main() {
    d := Dog{"Fido"}
    fmt.Println(d.Speak())
}
ログイン後にコピー
  1. 同時プログラミング

Golang は、同時プログラミングを自然にサポートする言語です。 goroutine と Channel の 2 つの概念を使用すると、効率的な並行プログラムを簡単に実装できます:

func worker(id int, c chan int) {
    for {
        n, ok := <-c
        if !ok {
            break
        }
        fmt.Printf("Worker %d received %d
", id, n)
    }
    fmt.Printf("Worker %d is done
", id)
}

func createWorker(id int) chan<- int {
    c := make(chan int)
    go worker(id, c)
    return c
}

func main() {
    c := make(chan int)
    var wg sync.WaitGroup
    for i := 0; i < 10; i++ {
        wg.Add(1)
        go func(id int) {
            c := createWorker(id)
            for j := 0; j < 10; j++ {
                c <- j
            }
            wg.Done()
        }(i)
    }
    wg.Wait()
    close(c)
    time.Sleep(time.Second)
}
ログイン後にコピー

上記は、Golang の基本的な構文とプログラミング パラダイムです。より高度な言語機能と実用的なアプリケーション シナリオについての議論には熟練が必要です。言語をマスターしたら、さらに深い学習と研究に進みます。

以上がgolangでコードを書く方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート