所以基本上我想知道在GO中是否可以,因为我在用 Dereference.
例如,在下面的代码中,指针被传递给函数,我试图返回传递给函数的指针字符串的一个字母。指针被传递给函数,我试图返回传递的指针字符串中的一个字母,在给定的例子中是H,然而 切片 只能用于字符串。我想知道是否可以使用指针Dereference来实现。
代码示例。
func Test(test *string) {
if len(*test) > 0 {
*test = *test[:1]
}
strings.ToUpper(*test)
}
func main() {
str := "hello"
Test(&str)
fmt.Print( str)
}
你需要把 test
括号内,即先去引用指针,然后再切分。
然后再将 Test
函数不回本 H
不过,因为 ToUpper
取值并返回一个值。所以你需要将 ToUpper
到 *test
也是。
func Test(test *string) {
if len(*test) > 0 {
*test = (*test)[:1] // bracketed `test`
}
*test = strings.ToUpper(*test) // reassign to `test`
}
func main() {
str := "hello"
Test(&str)
fmt.Print(str) // Prints 'H'
}
在围棋中,是否可以将字符串的指针传递给它,并使其成为字符串的片断?
可以。func (ps *string) []string { return []string{*ps} }