ゴーランド文法面接の質問

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() メソッドが自動的に使用されます。

Guess you like

Origin blog.csdn.net/abc54250/article/details/130736059