package main
import ("fmt")
func main() {
var bts []byte =nil
fmt.Println("the result :", string(bts)) // why not panic ?
// the result :
}
https://play.golang.org/p/dzRzzKvUyd
因为片的零值(nil
)的作用类似于零长度片。例如,您还可以声明一个切片变量,然后在循环中附加到该变量:
// Filter returns a new slice holding only
// the elements of s that satisfy f()
func Filter(s []int, fn func(int) bool) []int {
var p []int // == nil
for _, v := range s {
if fn(v) {
p = append(p, v)
}
}
return p
}
更多详细信息可在此处找到:https://blog.golang.org/go-slices-usage-and-internals
一般来说,对于任何可以是nil
的类型,您都可以生成您喜欢的任何字符串表示形式!这是因为在实现fmt时。Stringer
接口(参见此处)-或类型上的任何函数可以是nil
-您可以为接收器值设置nil
。换句话说,与OOP语言相比,您可以在nil
对象上调用方法。在这个示例代码中,您将看到ʕ◔ϖ◔嗨,尼洛
用于第二种类型的
nil
值,但BOO数据!!!::嗨!:)
当您有一个元素在里面时(它只打印第一个元素作为示例代码)。
请再次记住,go中键入的是
nil
。
问题内容: Oracle Java Community网站上的一篇文章提供了以下方法作为示例(对于JPA Converter,但这并不相关): 将String y强制转换为String val有什么用?有正当的理由吗? 原始文章:JPA的新增功能 问题答案: 这样的转换是完全没有必要的。我可以想象那是以前 但是后来参数类型更改为,而作者只是忘了删除强制类型转换。
问题内容: 我想在GO中将字符串数组转换为字节数组,以便可以将其写到磁盘上。将字符串数组()解码为字节数组()的最佳解决方案是什么? 我正在考虑对字符串数组进行两次迭代,第一个迭代以获得字节数组所需的实际大小,然后第二个迭代写入每个元素的长度和实际字符串()。 解决方案必须能够以其他方式进行转换;从一个到一个。 问题答案: 让我们忽略一个事实,那就是走一秒钟。您需要做的第一件事是将序列化格式编组为
问题内容: 我想将python变量名称转换为等效的字符串,如图所示。有什么想法吗? 问题答案: TL; DR:不可能。参见最后的“结论”。 在一个使用场景中,您可能需要此场景。我并不是在暗示没有更好的方法或实现相同的功能。 为了在调试,模式和其他类似情况下出现错误时“转储”任意词典列表,这将很有用。 需要的是该功能的反向功能: 它将以标识符名称(“变量”,“字典”等)作为参数,并返回包含标识符名称
问题内容: 我不明白为什么这个简单的代码行不起作用: 它正在输出“ SomeVariable is $ someVariable”,而不是数字0。是否缺少某些内容或必须启用某些配置选项? 问题答案: 那是因为您需要使用双引号来代替。当用单引号引起来时,php不会将变量转换为它们的值
问题内容: 我正在使用以下代码从外部程序获取标准输出: 方法返回一个字节数组: 但是,我想将输出作为普通的字符串使用。这样我就可以像这样打印它: 我认为这就是方法的用途,但是当我尝试使用它时,我又得到了相同的字节数组: 如何将字节值转换回字符串?我的意思是,使用”batteries”而不是手动进行操作。我希望它与Python 3兼容。 问题答案: 你需要解码bytes对象以产生一个字符串:
问题内容: 我有任何字符串。像“水牛” 我想将此字符串转换为某些变量名称,例如, 不仅是这个例子,我还想将任何输入字符串转换为某个变量名。我该怎么做(在python中)? 问题答案: 之后,你可以通过以下方式进行检查: 作为输出,你将看到: