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;
上述()和{}之间的概念区别是什么?
答案 0 :(得分:3)
原因是type conversions和slice 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