2015-05-15 3 views
-1

Я пытаюсь создать приложение go, отображающее IP-адрес пользователей.Недостаточно аргументов при вызове

Я не могу понять свою ошибку входа консоли:

go:14: not enough arguments in call to getJsonRes

Go код приложения:

package main 

import (
    "encoding/json" 
    "net/http" 
    "fmt" 
) 

type Addrs struct { 
    ip string 
} 

func handler(w http.ResponseWriter, r *http.Request) { 
    response, err := getJsonRes() 
    if err != nil { 
    http.Error(w, err.Error(), http.StatusInternalServerError) 
    return 
    } 
    w.Header().Set("Content-Type", "application/json") 
    fmt.Fprintf(w, string(response)) 
} 

func main() { 
    http.HandleFunc("/", handler) 
} 

func getJsonRes(r *http.Request)([]byte, error) { 
    ip := Addrs{ r.RemoteAddr } 

    return json.MarshalIndent(ip, "", " ") 
} 

ответ

3

Ваша функция

func getJsonRes(r *http.Request)([]byte, error)

принимает указатель запроса и возвращает массив байтов и/или ошибку.

На этой линии

response, err := getJsonRes()

Вы называете его без аргументов. Вы, вероятно, хотели бы сделать следующее:

response, err := getJsonRes(r)

Смежные вопросы