記事ディレクトリ
1. switch ステートメントについて、次のステートメントのうち正しいものはどれですか?
A. 1 つのケースで、複数の結果オプションが表示される可能性があります;
B. ケースを明示的に終了するには、break を使用する必要があります;
C. ケースに fallthrough キーワードが明示的に追加された場合にのみ、次のケースが実行され続けます;
D . 条件 式は定数または整数でなければなりません;
答えと分析を参照してください: AC。
2. 次のコードはコンパイルできますか? 可能であれば、出力は何ですか?
func alwaysFalse() bool {
return false
}
func main() {
switch alwaysFalse()
{
case true:
println(true)
case false:
println(false)
}
}
回答と分析を参照してください。コンパイルして渡すことができ、出力: true。知識ポイント: Go のコード ブレーク ルール。
3.interface{} は任意のオブジェクトを指すことができる Any 型ですが、正しいですか?
A. false
B. true
参考回答と分析: B.
4. 以下のコードのどこが間違っていますか?
type ConfigOne struct {
Daemon string
}
func (c *ConfigOne) String() string {
return fmt.Sprintf("print: %v", c)
}
func main() {
c := &ConfigOne{
}
c.String()
}
参考回答と分析: 無限再帰ループ、スタック オーバーフロー。知識ポイント: String() 型のメソッド。型で String() メソッドが定義されている場合、Printf()、Print()、Println()、Sprintf() などを使用して出力をフォーマットするときに、String() メソッドが自動的に使用されます。