Arrays Go-按顺序从URL下载文件

Arrays Go-按顺序从URL下载文件,arrays,function,go,Arrays,Function,Go,我正试图学习GoLang的一些新东西,但遇到了一个小问题,可能是因为我不太擅长使用数组 下面是我想做的: 使可变 下载该变量 为该变量添加++1 下载并添加1 循环10次 我对第1点和第2点都很在行,但对第3点和第4点却没有什么意见 所有的文件都是.pdf格式的,这就是我为什么在那里制作strconv的原因 我可能应该在main中进行某种循环,并使用其中的一些数组参数调用DownloadFile函数 package main import ( "fmt" "io" "n

我正试图学习GoLang的一些新东西,但遇到了一个小问题,可能是因为我不太擅长使用数组

下面是我想做的:

  • 使可变
  • 下载该变量
  • 为该变量添加++1
  • 下载并添加1
  • 循环10次

    我对第1点和第2点都很在行,但对第3点和第4点却没有什么意见

    所有的文件都是.pdf格式的,这就是我为什么在那里制作strconv的原因

    我可能应该在main中进行某种循环,并使用其中的一些数组参数调用DownloadFile函数

    package main
    
    import (
        "fmt"
        "io"
        "net/http"
        "os"
        "strconv"
    )
    
    func main() {
        url_id := strconv.Itoa(23430815+2)
        filename := url_id+".pdf"
        fileUrl := "https://someurLid="+url_id
    
        if err := DownloadFile(filename, fileUrl); err != nil {
            panic(err)
        }
        fmt.Println(fileUrl)
    }
    
    
    func DownloadFile(filepath string, url string) error {
    
        resp, err := http.Get(url)
        if err != nil {
            return err
        }
        defer resp.Body.Close()
    
        out, err := os.Create(filepath)
        if err != nil {
            return err
        }
        defer out.Close()
    
        _, err = io.Copy(out, resp.Body)
        return err
    }
    

    Cerise Limón给出了答案,结果就是这样

        arr := make([]uint8, 3) //How many times it loops
    url_id := 23430815 //Starting from id, filename
    for range arr {
        filename := strconv.Itoa(url_id)+".pdf"
        fileUrl := "https://someurl?id="+strconv.Itoa(url_id)
    
        if err := DownloadFile(filename, fileUrl); err != nil {
            panic(err)
        }
        fmt.Println(fileUrl)
        url_id++
    }
    

    谢谢你指出我应该从哪里开始!:)

    Cerise Limón给出了答案,结果就是这样

        arr := make([]uint8, 3) //How many times it loops
    url_id := 23430815 //Starting from id, filename
    for range arr {
        filename := strconv.Itoa(url_id)+".pdf"
        fileUrl := "https://someurl?id="+strconv.Itoa(url_id)
    
        if err := DownloadFile(filename, fileUrl); err != nil {
            panic(err)
        }
        fmt.Println(fileUrl)
        url_id++
    }
    
    谢谢你指出我应该从哪里开始!:)

    试试这个

    package main
    
    import (
        "fmt"
        "io"
        "net/http"
        "os"
        "strconv"
    )
    
    func main() {
        url_id_num := 23430815+2
        for i := 0; i < 10; i++ {
            url_id := strconv.Itoa(url_id_num+i)
            filename := url_id+".pdf"
            fileUrl := "https://someurLid="+url_id
    
            if err := DownloadFile(filename, fileUrl); err != nil {
                panic(err)
            }
            fmt.Println(fileUrl)
        }
    }
    
    func DownloadFile(filepath string, url string) error {
    
        resp, err := http.Get(url)
        if err != nil {
            return err
        }
        defer resp.Body.Close()
    
        out, err := os.Create(filepath)
        if err != nil {
            return err
        }
        defer out.Close()
    
        _, err = io.Copy(out, resp.Body)
        return err
    }
    
    主程序包
    进口(
    “fmt”
    “io”
    “net/http”
    “操作系统”
    “strconv”
    )
    func main(){
    url\u id\u num:=23430815+2
    对于i:=0;i<10;i++{
    url\u id:=strconv.Itoa(url\u id\u num+i)
    文件名:=url_id+“.pdf”
    文件URL:=”https://someurLid=“+url\u id
    如果错误:=下载文件(文件名,文件URL);错误!=无{
    恐慌(错误)
    }
    fmt.Println(文件URL)
    }
    }
    func下载文件(文件路径字符串、url字符串)错误{
    resp,err:=http.Get(url)
    如果错误!=零{
    返回错误
    }
    延迟响应主体关闭()
    out,err:=os.Create(文件路径)
    如果错误!=零{
    返回错误
    }
    推迟结束
    _,err=io.Copy(out,resp.Body)
    返回错误
    }
    
    试试这个

    package main
    
    import (
        "fmt"
        "io"
        "net/http"
        "os"
        "strconv"
    )
    
    func main() {
        url_id_num := 23430815+2
        for i := 0; i < 10; i++ {
            url_id := strconv.Itoa(url_id_num+i)
            filename := url_id+".pdf"
            fileUrl := "https://someurLid="+url_id
    
            if err := DownloadFile(filename, fileUrl); err != nil {
                panic(err)
            }
            fmt.Println(fileUrl)
        }
    }
    
    func DownloadFile(filepath string, url string) error {
    
        resp, err := http.Get(url)
        if err != nil {
            return err
        }
        defer resp.Body.Close()
    
        out, err := os.Create(filepath)
        if err != nil {
            return err
        }
        defer out.Close()
    
        _, err = io.Copy(out, resp.Body)
        return err
    }
    
    主程序包
    进口(
    “fmt”
    “io”
    “net/http”
    “操作系统”
    “strconv”
    )
    func main(){
    url\u id\u num:=23430815+2
    对于i:=0;i<10;i++{
    url\u id:=strconv.Itoa(url\u id\u num+i)
    文件名:=url_id+“.pdf”
    文件URL:=”https://someurLid=“+url\u id
    如果错误:=下载文件(文件名,文件URL);错误!=无{
    恐慌(错误)
    }
    fmt.Println(文件URL)
    }
    }
    func下载文件(文件路径字符串、url字符串)错误{
    resp,err:=http.Get(url)
    如果错误!=零{
    返回错误
    }
    延迟响应主体关闭()
    out,err:=os.Create(文件路径)
    如果错误!=零{
    返回错误
    }
    推迟结束
    _,err=io.Copy(out,resp.Body)
    返回错误
    }
    
    阅读围棋之旅中的相关内容。该示例演示如何使用递增计数器循环。有效的围棋文档还包括。@CeriseLimón-你可以将此作为答案发布,这就是给我解决方案的原因:)。阅读围棋教程。该示例演示如何使用递增计数器循环。有效的Go文件还包括。@CeriseLimón-你可以将此作为答案发布,这就是给我解决方案的原因:)。