相关疑难解决方法(0)

什么是符文?

什么是runeGo?

我一直在谷歌搜索,但Golang只用一行说:rune是别名int32.

但是整个周围如何使用整数来交换案例?

以下是函数交换大小写.什么是<=-

为什么没有switch任何争论呢?

&&应该是说,但什么是r <= 'z'

func SwapRune(r rune) rune {
    switch {
    case 'a' <= r && r <= 'z':
        return r - 'a' + 'A'
    case 'A' <= r && r <= 'Z':
        return r - 'A' + 'a'
    default:
        return r
    }
}
Run Code Online (Sandbox Code Playgroud)

其中大多数来自http://play.golang.org/p/H6wjLZj6lW

func SwapCase(str string) string {
    return strings.Map(SwapRune, str)
}
Run Code Online (Sandbox Code Playgroud)

我理解这是映射runestring …

go rune

161
推荐指数
6
解决办法
7万
查看次数

有没有办法将整数转换为bools,反之亦然?

是否存在将bool转换为整数的内置方法,反之亦然?我尝试过普通的转换,但由于它们使用不同的底层类型,转换是不可能的经典方式.我已经倾注了一些规范,但我还没有找到答案.

types go

24
推荐指数
5
解决办法
2万
查看次数

Golang从符文转换为字符串

我有以下代码,它应该rune投入一个string并打印出来.但是,我在打印时会得到未定义的字符.我无法弄清楚bug的位置:

package main

import (
    "fmt"
    "strconv"
    "strings"
    "text/scanner"
)

func main() {
    var b scanner.Scanner
    const a = `a`
    b.Init(strings.NewReader(a))
    c := b.Scan()
    fmt.Println(strconv.QuoteRune(c))
}
Run Code Online (Sandbox Code Playgroud)

string unicode parsing go rune

24
推荐指数
1
解决办法
3万
查看次数

将符文转换为int?

在下面的代码中,我string用符文迭代一个符文,但实际上我需要int执行一些校验和计算.我真的需要来编码rune成一个[]byte,然后将其转换为一个string,然后用Atoi获得的int出来的rune?这是惯用的方式吗?

// The string `s` only contains digits.
var factor int
for i, c := range s[:12] {
    if i % 2 == 0 {
        factor = 1
    } else {
        factor = 3
    }
    buf := make([]byte, 1)
    _ = utf8.EncodeRune(buf, c)
    value, _ := strconv.Atoi(string(buf))
    sum += value * factor
}
Run Code Online (Sandbox Code Playgroud)

在操场上:http://play.golang.org/p/noWDYjn5rJ

idioms type-conversion go rune

22
推荐指数
2
解决办法
2万
查看次数

如何将uint8转换为字符串

http://play.golang.org/p/BoZkHC8_uA

我想将uint8转换为字符串,但无法弄清楚如何.

  package main

  import "fmt"
  import "strconv"

  func main() {

    str := "Hello"
    fmt.Println(str[1])  // 101

    fmt.Println(strconv.Itoa(str[1]))
  }
Run Code Online (Sandbox Code Playgroud)

这给了我 prog.go:11: cannot use str[1] (type uint8) as type int in function argument [process exited with non-zero status]

任何的想法?

go

11
推荐指数
3
解决办法
3万
查看次数

如何在golang中将字符串转换为整数

我想在golang中将字符串转换为整数.但我不知道字符串的格式.例如,"10"- > 10,"65.0"- > 65,"xx"- > 0,"11xx" - > 11,"xx11" - > 0

我做了一些搜索并找到了strconv.ParseInt().但它无法处理"65.0".所以我必须检查字符串的格式.

有没有更好的办法?

casting type-conversion go

9
推荐指数
3
解决办法
2万
查看次数

在Go中转换/转换为符文

假设我有一个int64变量(或其他整数大小)表示一个有效的unicode代码点,并且我想将它转换为Go中的符文,我该怎么办?

在CI中会使用类似的类型:

c = (char) i;  // 7 bit ascii only
Run Code Online (Sandbox Code Playgroud)

但是在Go中,类型断言不起作用:

c, err = rune.( i)
Run Code Online (Sandbox Code Playgroud)

建议?

casting type-conversion go rune

8
推荐指数
1
解决办法
9353
查看次数

Go中的惯用语类型转换

我正在玩Go,并想知道在Go中执行惯用类型转换的最佳方法是什么.基本上我的问题之间的自动类型转换中规定uint8,uint64float64.根据我对其他语言的经验,a uint8与a 的乘法uint64将产生一个uint64值,但在go中则不然.

这是我构建的一个示例,我问这是否是编写此代码的惯用方法,或者我是否缺少重要的语言结构.

package main

import ("math";"fmt")

const(Width=64)

func main() {

    var index uint32
    var bits uint8

    index = 100
    bits = 3

    var c uint64
    // This is the line of interest vvvv
    c = uint64(math.Ceil(float64(index * uint32(bits))/float64(Width)))
    fmt.Println("Test: %v\n", c)
}
Run Code Online (Sandbox Code Playgroud)

从我的观点来看,由于所有显式类型转换,上限值的计算似乎不必要复杂.

谢谢!

go

7
推荐指数
1
解决办法
2183
查看次数

golang中的字符串到数字转换

Golang 有strconv库,可以将字符串转换为 int64 和 uint64。

但是,其余的整数数据类型似乎不受支持,因为我找不到 byte、int16、uint16、int32、uint32 数据类型的转换函数。

人们总是可以在不损失精度的情况下从字节、16 位和 32 位数据类型转换为 int64 和 uint64。这是语言的本意吗?

go

4
推荐指数
2
解决办法
1万
查看次数

在Go中将float转换为int时如何舍入到最接近的int

当将float转换为int时,将舍弃小数。什么是干净的转换方法,以便将其舍入到最接近的整数。

x := int(3.6) 应该等于4而不是3。

go

2
推荐指数
2
解决办法
717
查看次数

符文和字节之间的转换(切片)

Go 允许从rune到 的转换byte。但是 for 的基础类型runeint32(因为 Go 使用 UTF-8),并且因为byte它是uint8,因此转换会导致信息丢失。但是,无法从符文转换为[]byte.

var b byte = '©'
bs := []byte(string('©'))
fmt.Println(b)
fmt.Println(bs)

// Output
169
[194 169]
Run Code Online (Sandbox Code Playgroud)

工作示例

为什么 Go 允许从runeto转换byte而不是runeto []byte

go

1
推荐指数
1
解决办法
1421
查看次数

标签 统计

go ×11

rune ×4

type-conversion ×3

casting ×2

idioms ×1

parsing ×1

string ×1

types ×1

unicode ×1