2、var arr []int 这时arr就是一个slice 切片 。
3、数组中的元素可以是任何数据类型,包括值类型和引用类型,但是 不能混用 。
4、数组创建后,如果没有赋值,有默认值如下:
数值类型数组: 默认值为 0
字符串数组: 默认值为 ""
bool数组: 默认值为 false
5、使用数组的步骤:
(1)声明数组并开辟空间
(3)给数组各个元素赋值
(3)使用数组
6、数组的下标是从0开始的。
7、数组下标必须在指定范围内使用,否则报panic:数组越界,比如var arr [5]int的有效下标为0~4.
8、Go的数组属于 值类型 ,在默认情况下是 值传递 ,因此会进行值拷贝。 数组间不会相互影响。
9、如想在其他函数中去修改原来的数组,可以使用 引用传递 (指针方式)。
10、长度是数组类型的一部分,在传递函数参数时,需要考虑数组的长度,看以下案例:
题1:编译错误,因为不能把[3]int类型传递给[]int类型,前者是数组,后者是切片;
题2:编译错误,因为不能把[3]int类型传递给[4]int类型;
题3:编译正确,因为[3]int类型传给[3]int类型合法。
需要写一个方法,把json数据转换成list集合数据public static List jsonToBean(String data, Object bean) {
List list = new ArrayList()
try {
JSONArray array
try {
array = new JSONArray(data)
for (int i = 0i <array.length()i++) {
Object toBean = getBean(bean)
JSONObject ob = new JSONObject()
ob = (JSONObject) array.get(i)
toBean = jsonStrToBean(ob, toBean)
list.add(toBean)
}
return list
} catch (JSONException e) {
try {
Object obj = null
JSONObject jsonObj = new JSONObject(data)
Object toBean = getBean(bean)
toBean = jsonStrToBean(jsonObj, toBean)
list.add(toBean)
return list
} catch (JSONException e1) {
log.error("Error covert String to JSONObject", e)
e1.printStackTrace()
}
e.printStackTrace()
log.error("Error covert String to JSONArray", e)
}
} catch (SecurityException e) {
e.printStackTrace()
}
return list
}