Skip to main content

리턴값 두개 받을 수 있다

리턴값 두개 받을 수 있다.

client, err := net.DialTimeout(netScheme, host, time.Duration(w.Timeout))
if err != nil {
    fmt.Printf("Error: %v\n", err)
} else {
    fmt.Printf("Connected to %v\n", client.RemoteAddr())
}

자바로 치면,

// Java에서 다중 반환 값을 처리하는 예시

// 사용자 정의 클래스
class ConnectionResult {
    public Socket client;
    public Exception error;
    
    public ConnectionResult(Socket client, Exception error) {
        this.client = client;
        this.error = error;
    }
}

public ConnectionResult connect(String host, int timeout) {
    try {
        Socket client = new Socket();
        client.connect(new InetSocketAddress(host, timeout));
        return new ConnectionResult(client, null);
    } catch (IOException e) {
        return new ConnectionResult(null, e);
    }
}

// 사용 예시
ConnectionResult result = connect("example.com", 1000);
if (result.error != null) {
    System.out.println("Error: " + result.error.getMessage());
} else {
    System.out.println("Connected to " + result.client.getRemoteSocketAddress());
}