第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

計(jì)算相似的數(shù)組值

計(jì)算相似的數(shù)組值

Go
森林海 2022-01-04 10:42:44
我正在嘗試學(xué)習(xí) Go(或 Golang),但似乎無法正確學(xué)習(xí)。我有 2 個(gè)文本文件,每個(gè)文件都包含一個(gè)單詞列表。我正在嘗試計(jì)算兩個(gè)文件中存在的單詞數(shù)量。到目前為止,這是我的代碼:package mainimport (    "fmt"    "log"    "net/http"    "bufio")func stringInSlice(str string, list []string) bool {    for _, v := range list {        if v == str {            return true        }    }    return false}func main() {    // Texts URL    var list = "https://gist.githubusercontent.com/alexcesaro/c9c47c638252e21bd82c/raw/bd031237a56ae6691145b4df5617c385dffe930d/list.txt"    var url1 = "https://gist.githubusercontent.com/alexcesaro/4ebfa5a9548d053dddb2/raw/abb8525774b63f342e5173d1af89e47a7a39cd2d/file1.txt"    //Create storing arrays    var buffer [2000]string    var bufferUrl1 [40000]string    // Set a sibling counter    var sibling = 0    // Read and store text files    wordList, err := http.Get(list)    if err != nil {        log.Fatalf("Error while getting the url : %v", err)    }    defer wordList.Body.Close()    wordUrl1, err := http.Get(url1)    if err != nil {        log.Fatalf("Error while getting the url : %v", err)    }    defer wordUrl1.Body.Close()    streamList := bufio.NewScanner(wordList.Body)    streamUrl1 := bufio.NewScanner(wordUrl1.Body)    streamList.Split(bufio.ScanLines)    streamUrl1.Split(bufio.ScanLines)    var i = 0;    var j = 0;    //Fill arrays with each lines    for streamList.Scan() {        buffer[i] = streamList.Text()        i++    }    for streamUrl1.Scan() {        bufferUrl1[j] = streamUrl1.Text()        j++    }    //ERROR OCCURRING HERE :    // This code if i'm not wrong is supposed to compare through all the range of bufferUrl1 -> bufferUrl1 values with buffer values, then increment sibling and output FIND    for v := range bufferUrl1{        if stringInSlice(bufferUrl1, buffer) {            sibling++            fmt.Println("FIND")        }    }    // As a testing purpose thoses lines properly paste both array    // fmt.Println(buffer)    // fmt.Println(bufferUrl1)}
查看完整描述

1 回答

?
人到中年有點(diǎn)甜

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊

bufferUrl1是一個(gè)數(shù)組:[4000]string。您打算使用v( 中的每個(gè)字符串bufferUrl1)。但實(shí)際上,您打算使用第二個(gè)變量——第一個(gè)變量是在下面的代碼中使用_.

類型[2000]string不同于[]string. 在 Go 中,數(shù)組和切片是不一樣的。閱讀Go Slices:用法和內(nèi)部結(jié)構(gòu)。我已經(jīng)使用 make 更改了兩個(gè)變量聲明以使用具有相同初始長度的切片。

這些是您需要進(jìn)行編譯的更改。


聲明:


// Create storing slices

buffer := make([]string, 2000)

bufferUrl1 := make([]string, 40000)

和第 69 行的循環(huán):


for _, s := range bufferUrl1 {

    if stringInSlice(s, buffer) {

        sibling++

        fmt.Println("FIND")

    }

}

作為旁注,考慮使用映射而不是切片來buffer實(shí)現(xiàn)更高效的查找,而不是在stringInSlice.


https://play.golang.org/p/UcaSVwYcIw修復(fù)了以下評(píng)論(您將無法從 Playground 發(fā)出 HTTP 請(qǐng)求)。


查看完整回答
反對(duì) 回復(fù) 2022-01-04
  • 1 回答
  • 0 關(guān)注
  • 161 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)