有关字符串的索引字符的问题

以下是我创建的程序,用于了解字符串字符索引在 Go 中的工作原理:


package main


import "fmt"


func main() {

    vendor1 := "Cisco"

    fmt.Println(vendor1[0])  

    fmt.Println(vendor1[1:4]) 

    fmt.Println(vendor1[1:])  

    fmt.Println(vendor1[:])

}

输出:


C:\Golang\VARIABLE> go run .\variable.go

67

isc

isco

Cisco

令我感到困惑的是,Println(供应商1[0])返回数字“67”而不是“C”,为什么会这样?为什么它与打印器(供应商1[1:4])、打印器(供应商1[1:])和Println(供应商1[:])不同,它们都返回所需的字符?


米脂
浏览 80回答 2
2回答

白衣染霜花

索引表达式与切片表达式不是一回事,不要将它们混为一谈。索引(与切片相反)返回 的类型别名 ,并简单地打印出无符号整数。byteuint8Println切片返回一个字符串,这就是输出文本的原因。Println

犯罪嫌疑人X

要打印索引 0 处的值,请使用 而不是 ,因为您可以使用的其他三个值,因为它们是字符串。我修改了您的代码,如下所示:fmt.Printf("%c\n", vendor1[0])fmt.Println(vendor1[0])%sfmt.Printf()package mainimport (    "fmt")func main() {    vendor1 := "Cisco"    fmt.Printf("%c\n", vendor1[0])    fmt.Printf("%s\n", vendor1[1:4])    fmt.Printf("%s\n", vendor1[1:])    fmt.Printf("%s\n", vendor1[:])}输出:CisciscoCisco
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go