首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >戈朗地区用符文代替字符串

戈朗地区用符文代替字符串
EN

Stack Overflow用户
提问于 2016-10-16 19:45:46
回答 1查看 917关注 0票数 2

下面是从控制台读取输入的代码

代码语言:javascript
复制
var message string
fmt.Scanln(&message)

但是我也想尝试使用符文,它是字节的unicode。

代码语言:javascript
复制
var input []rune
fmt.Scanln(input)

根据我的C/C++知识,数组的引用可以通过它的名称传递,我认为它会在符文的情况下起作用

但令人惊讶的是,在没有接收控制台输入的情况下,程序会通过Scanln。

那是怎么回事?还是做不到?还是需要类型转换才能字符串?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-16 20:26:15

你所拥有的是一个切片而不是一个数组,它们在中是不同的

当您从字符串中读取每个字符时,您将得到一个符文,例如:

代码语言:javascript
复制
for _, rune := range input { ... }
// or
input[0] // it returns a rune

现在,如果您想使用索引或更多的unicode操作,您应该记住每个符文都有一个长度,而且长度也会影响字符串的长度,请参阅下面的示例以更好地理解字符串中的3个字符,但长度为5:

代码语言:javascript
复制
package main

import (
    "fmt"
    "unicode/utf8"
)

func main() {

    input := "a界c"

    fmt.Println(len(input))

    for index, rune := range input {
        fmt.Println(index, utf8.RuneLen(rune), string(rune))    
    }

    fmt.Println(input[1:4]) // we know that the unicode character '界'
                            // starts in index 1 and ends in index 3
}

在这里运行它:https://play.golang.org/p/xvmH1laevS

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

https://stackoverflow.com/questions/40074698

复制
相关文章

相似问题

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