golang中括号和花括号的区别

时间:2018-10-30 22:02:26

标签: go

        Android.Content.Res.Configuration configuration = Resources.Configuration;
        configuration.FontScale = (float)1; //0.85 small size, 1 normal size, 1,15 big etc

        Android.Util.DisplayMetrics metrics = new DisplayMetrics();
        this.WindowManager.DefaultDisplay.GetMetrics(metrics);
        metrics.ScaledDensity = configuration.FontScale * metrics.Density;

上述()和{}之间的概念区别是什么?

2 个答案:

答案 0 :(得分:3)

原因是type conversionsslice literals之间的差异。

_ = []byte("Hi!")         // Converts a string literal to a []byte.
_ = []byte{'H', 'i', '!'} // Initializes a []byte literal

您的第二个示例[]byte{"H"}无法编译,因为"H"是用来代替rune literal string 文字,它相当于试图将字符串分配给字节类型变量:

var y byte = 'H' // OK
var x byte = "H" // ERROR: cannot use "H" (type string) as type byte in assignment

答案 1 :(得分:2)

在第一个a := []byte("H")中,将字符串"H"强制转换为字节数组。

在第二个a := []byte{"H"}中,您将定义一个字节数组,并将“ H”分配为其第一个值,这是无效的。

您可以将第二个与定义一个字符串数组进行比较:

s := []string{"hello","world",".."} // works
f := []string{1,2,4} // fails because the datatype is wrong