草庐IT

go - 将一片字符串转换为一片 float32

在我的程序中,我通过bufio扫描器将一串数字(例如:5443.3-43.2)添加到slice中。然后我想将每个空间的slice拆分成另一个slice以将其转换为float32。这是我所拥有的:varnewSlice[]float32sliceScan=scanner.Text()s:=strings.Split(sliceScan,"")fori:=0;i当我运行它时,我得到了这个错误:syntaxerror:unexpectedsattheendofstatement 最佳答案 您可以使用strconv.ParseFloat:v

go - 如何生成随机 Uint32 Go

我需要生成随机的Uint32类型,我知道如何在int中执行,但由于数字很大会导致溢出。是否可以在最小和最大范围内生成随机Uint32? 最佳答案 你可以只调用标准库:https://golang.org/pkg/math/rand/#Uint32要强制它在一个范围内,你可以使用模数和加号例子:funcrandU32(min,maxuint32)uint32{vara=rand.Uint32()a%=(max-min)a+=minreturna}Playground上:https://play.golang.org/p/AlMfjJO

math - 将 uint8 转为 float32

我正在尝试学习Go并研究降雨强度工具。对于此工具,我必须进行如下计算:varintensityfloat32intensity=10^((value−109)÷32)值是一个uint8,范围从0到255。强度变量是一个float。但是,Go告诉我cannotuse10^(value-109)/32(typeuint8)astypefloat32inassignment我该如何解决这个问题? 最佳答案 Go中没有÷运算符,^是按位异或,需要使用mathPow函数包Go对类型转换非常严格,因此在很多情况下它不允许隐式类型转换(因此无符号

当 bitSize 参数使用 32 时,Golang strconv.ParseFloat 无法正确解析字符串

为什么转换后的float64变量的值为1.590000033378601?1.59似乎小到可以放入32位:packagemainimport("fmt""strconv")funcmain(){str:=`1.59`float,err:=strconv.ParseFloat(str,32)iferr!=nil{fmt.Println("err:",err)}fmt.Printf("%T->%+v\n",float,float)}Goplaygroundlink 最佳答案 是32位变量的精度问题。这不是Go的问题。请参阅以下网址。IE

go - 将零 int 断言为 int32

我注意到对于零整数,Go断言并不像我预期的那样有效。这是代码:variinterface{}i=0i32,ok:=i.(int32)fmt.Println(ok)fmt.Println(i32)输出如下:false0我找不到对此行为的解释。是错误吗? 最佳答案 i不包含int32,它包含int,因此类型断言失败。像这样将字面量值直接分配给interface{}或在简短的变量声明中使用一个字面量值可能会有点困惑,因为您无法真正看到获得的值类型;你需要知道"defaulttype"的规则一个常数。如果这给您带来麻烦,您可以将其显式转换为

unit-testing - 在 golang 中运行单元测试错误 : %1 is not a valid win32 application

我正在尝试运行用golang编写的单元测试用例。执行测试用例时,出现类似“%1不是有效的Win32应用程序”的错误。我已经尝试重新安装go,但问题仍然存在。go.exetestdir-run^(testname)$fork/execC:\user\username\AppData\Local\Temp\go-build976684114\packageName.test:%1不是有效的win32应用程序。错误:测试失败。上面提到的文件夹也没有创建。不确定,发生了什么。 最佳答案 如果我将我的GOOS设置为windows它正在工作设置

go - 为什么在这种情况下 float32 比 float64 更准确?

如果我运行以下Go代码:fmt.Println(float32(0.1)+float32(0.2))fmt.Println(float64(0.1)+float64(0.2))输出是:0.30.30000000000000004看起来float32求和的结果比float64求和的结果更准确,为什么?我认为float64总是比float32更精确。我如何决定选择哪一个以获得最准确的结果? 最佳答案 事实并非如此。fmt.Println只是让它看起来更精确。Println使用%g来表示float和复数。Thedocssay...Thed

json - 无法将 float32 值解码为字符串

我有一个JSON响应,它返回created字段的UNIX时间戳值:"created_utc":1395800038.0---//ThetypeIusetomarshaltheresponseJSON.//Ican'tusestringbecauseGolangcomplainstheJSONisafloat.typeSubmissionstruct{CreatedUtcfloat32`json:"created_utc"`}我想将其转换为实际的Time对象:constlongForm="Jan2,2006at3:04pm(MST)"created_at,_:=time.Parse(lo

go - 如何将文件上传到 S3 Bucket/目录

我需要将文件上传到特定目录内的S3存储桶。我已经使用了aws-sdk-go包,并且能够使用存储桶中的PutObject函数上传文件。该文件将位于bucket/root目录中。我需要做的是将它上传到bucket/root/subDirectory中,但我无法弄清楚这一点。当前上传函数_,s3Err:=s3.New(s).PutObject(&s3.PutObjectInput{Bucket:aws.String(envs.InitAWSEnvs().AWSS3Name),Key:aws.String(fileDir),ACL:aws.String("private"),Body:byte

go - 在 golang 中创建一个 POST 策略并为基于浏览器的上传到 Amazon S3 签名

我正在尝试从我的客户端(AngularJS)实现基于浏览器的上传到亚马逊S3,经过一些研究我开始知道我必须创建一个策略并签署S3的POST请求。引用http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-post-example.html,我试过http://play.golang.org/p/3zn5fSDasKpackagemainimport"fmt"import"encoding/base64"funcmain(){bytePolicy:=[]byte(`{"expiration":"2013-08-06T12:00:00.00