2024-02-20 06:18PM
为什么go语言声明的[]float4,但是却包含2017这样的int存在?
eg:
"inventories" : [][]float64{
{2003,0},
{2004,0},
{2005,0},
{2006,0},
{2007,0},
{2008,0},
{2009,0},
{2010,0},
{2011,0},
{2012,0},
{2013,32085.03467},
{2014,34503.264},
{2015,37578.56333},
{2016,42187.296},
{2017,44850.19033},
{2018,51203.771},
{2019,54335.08267},
{2020,55402.17467},
{2021,61777.70667},
{2022,63011.10833},
}
因为对于[][]float64类型的切片,它允许包含float64类型的数组作为元素,这种情况下,每个数组的第一个元素是年份((int类型),第二个元素对应的是数值(float64类型)
在给定的代码中,尽管切片的类型声明为[][]float64,但由于切片中的每个元素都是一个包含两个元素的数组,其中第一个元素类型是 int 类型的年份,第二个元素是 float64 类型的数值 ,所以 2022 可以作为 int 类型的年份存在于切片中。
因为整数会被自动转换为浮点数类型,整数值2022被隐式地转换为浮点数2022.0,然后作为[][]float64
切片的元素之一。
所以,尽管切片的类型声明是 [][]float64,但是切片中的元素并不受切片类型声明的限制,只要保证每个元素是一个包含两个元素的数组即可。
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论