首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Golang中的加权随机

Golang中的加权随机
EN

Stack Overflow用户
提问于 2016-09-18 05:37:25
回答 2查看 2.8K关注 0票数 0

我必须在Golang中做加权随机,但我得到了一个错误:

代码语言:javascript
复制
multiple-value randutil.WeightedChoice() in single-value context

代码:

代码语言:javascript
复制
package main

import "fmt"
import "github.com/jmcvetta/randutil"

func main() {    
    choices := make([]randutil.Choice, 0, 2)    
    choices = append(choices, randutil.Choice{1, "dg"})
    choices = append(choices, randutil.Choice{2, "n"})    
    result := randutil.WeightedChoice(choices)    
    fmt.Println(choices)
}

任何帮助都将深表感谢。

EN

回答 2

Stack Overflow用户

发布于 2016-09-18 14:45:27

The func WeightedChoice(choices []Choice) (Choice, error)

返回Choice, error,所以使用result, err := randutil.WeightedChoice(choices),就像下面这样的工作代码:

代码语言:javascript
复制
package main

import (
    "fmt"

    "github.com/jmcvetta/randutil"
)

func main() {
    choices := make([]randutil.Choice, 0, 2)
    choices = append(choices, randutil.Choice{1, "dg"})
    choices = append(choices, randutil.Choice{2, "n"})
    fmt.Println(choices) // [{1 dg} {2 n}]

    result, err := randutil.WeightedChoice(choices)
    if err != nil {
        panic(err)
    }

    fmt.Println(result) //{2 n}
}

输出:

代码语言:javascript
复制
[{1 dg} {2 n}]
{2 n}
票数 6
EN

Stack Overflow用户

发布于 2016-09-18 06:42:29

WeightedChoice返回一个您没有在代码中确认的错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39551985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档