「試験バトル: Go 言語の試験問題に対するワンストップ ソリューション。具体的なコード例が必要です。」
Go 言語は効率的で簡潔なプログラミング言語として、プログラマーの間でますます人気が高まっています。ただし、試験に取り組む場合、解決するために Go 言語の知識をより深く理解し、習得する必要がある問題に遭遇することがあります。この記事では、読者がこれらの問題をよりよく理解し、対処できるように、いくつかの一般的な Go 言語試験問題に焦点を当て、具体的なコード例と組み合わせて説明します。
1. スライスと配列の違い
スライスと配列は Go 言語でよく使用される 2 つのデータ構造ですが、これらの間には明らかな違いがあります。配列の長さは宣言時に決定されますが、スライスの長さは動的に変化します。以下は、この 2 つの違いを示すコード例です。
package main import "fmt" func main() { // 声明一个数组 arr := [3]int{1, 2, 3} // 声明一个切片 slice := []int{1, 2, 3} // 输出数组和切片的长度 fmt.Println("数组的长度:", len(arr)) fmt.Println("切片的长度:", len(slice)) }
上記のコード例では、長さ 3 の配列 arr
と 3 つの要素を含む配列スライス## を宣言しています。 #slice を入力し、それぞれの長さを出力します。このコードを実行すると、配列の長さは宣言時に決定され、要素の数に基づいてスライスの長さが動的に変化することがわかります。
2. defer キーワードの使用
#defer キーワードは関数の実行を遅らせるために使用され、通常はリソースの解放やファイルなどのシナリオで使用されます。閉鎖。 defer ステートメントの実行順序は、出現する順序と逆になります。つまり、defer に続くステートメントが最初に実行されます。以下は defer の使用法を示す例です。package main import "fmt" func main() { defer fmt.Println("defer 1") defer fmt.Println("defer 2") fmt.Println("main function") }
main function を出力します。このコードを実行すると、defer ステートメントの実行順序が後入れ先出しであることがわかります。つまり、最初に「defer 2」が出力され、次に「defer 1」が出力され、最後に「main function」が出力されます。
3. Goroutine の使用
Goroutine は Go 言語の軽量スレッドの概念であり、同時プログラミングを実現し、プログラムのパフォーマンスを向上させることができます。以下は、Goroutine の使用法を示す簡単な例です。package main import ( "fmt" "time" ) func printNumbers() { for i := 0; i < 5; i++ { time.Sleep(time.Second) fmt.Println(i) } } func main() { go printNumbers() fmt.Println("main function") time.Sleep(5 * time.Second) }
printNumbers 関数を定義します。数値が出力されるたびに 1 秒間スリープします。
main 関数では、
go キーワードを使用して新しい Goroutine を開始し、
printNumbers 関数を実行し、メイン スレッドで「main 関数」を出力します。 。このコードを実行すると、メインスレッドとGoroutineが並行して実行され、出力結果が交互に表示されることがわかります。
以上がExam Battle: Go 言語の試験問題をワンストップで解決の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。