カラス-golang関数マルチパラメータ戻り(良好な体験)

1398 ワード

Goの表示
func getRequest(conn net.Conn) //  
(rawaddr []byte, host string, err error)//     
{

}

Javaソリューション
従来,JavaソリューションはMap.を用いた欠点である.
  • 戻りパラメータ個数不確定
  • 戻りパラメータタイプ不確定
  • 戻りパラメータ名は文字列形式が存在し、IDEは検出できず、文字列は局所形式が存在しない.
  • void method1(){
    
        method2().get("    ");
    }
    
    Map method2(){
        Map map=...;
        map.put("    ")
    }

    ここでは、「パラメータ名」という文字列が、2つの関数に存在する.関数の局所性に合致しない.
    考える
    Javaの観点から考えると,マルチパラメータはこのように表現すべきである.
    func getRequest(conn net.Conn) ( []byte,  string,  error) {
        //   
    
        return rawaddr, host ,err;
    }

    しかし、ここの欠陥は:
  • は、すべてのパラメータ
  • を返す必要があります.
  • は、
  • を初期化する必要があります.
    Goの改善点は、タイプの初期化を関数にして、以上の問題を解決することです.
    func getRequest(conn net.Conn) (rawaddr []byte, host string, err error) {
    
    }