首页 理论教育 如何创建和初始化数组,避免编译器报错?

如何创建和初始化数组,避免编译器报错?

时间:2023-06-23 理论教育 版权反馈
【摘要】:先从声明一个数组开始,示例如下:动手写5.1.1 DefineArray本例中创建了一个变量stringArray1,类型是Array,这里有个新的语法,表明数组只接受String类型作为存储数据,如果往这个数组中添加其他类型的数据,编译器会报错。关键字var表示stringArray1是个变量,我们可以对stringArray1进行修改。那么如要初始化一个数组,我们可以编写以下代码:动手写5.1.2 InitArray这时会出现编译器的报错信息,提示stringArray1还未被初始化,所以使用数组前还需要先初始化。

如何创建和初始化数组,避免编译器报错?

在本小节中,我们会围绕一个书本清单创建数组,并对其进行修改或者查询作为练习。先从声明一个数组开始,示例如下:

动手写5.1.1 DefineArray

本例中创建了一个变量stringArray1,类型是Array<String>,这里有个新的语法<String>,表明数组只接受String类型作为存储数据,如果往这个数组中添加其他类型的数据,编译器会报错。除此之外,大部分语法是之前我们已经学习过的。关键字var表示stringArray1是个变量,我们可以对stringArray1进行修改。StringArray2使用的是[String]语法,通过在方括号内放置一个数据类型的方式来指定数组接受的数据类型,与之前Array<String>的声明是等价的。intArray1和intArray2里面则是存放Int类型的值,这两个Array里面存放的都是值类型,而非引用类型(因为Int和String都是Swift的结构体,所以都是值类型,对于Swift数据类型的区分将会在第7章中讲解)。在声明完数组后,读者可以尝试使用数组的append()方法,给数组添加新的元素:

本例中创建了一个变量stringArray1,类型是Array<String>,这里有个新的语法<String>,表明数组只接受String类型作为存储数据,如果往这个数组中添加其他类型的数据,编译器会报错。除此之外,大部分语法是之前我们已经学习过的。关键字var表示stringArray1是个变量,我们可以对stringArray1进行修改。StringArray2使用的是[String]语法,通过在方括号内放置一个数据类型的方式来指定数组接受的数据类型,与之前Array<String>的声明是等价的。intArray1和intArray2里面则是存放Int类型的值,这两个Array里面存放的都是值类型,而非引用类型(因为Int和String都是Swift的结构体,所以都是值类型,对于Swift数据类型的区分将会在第7章中讲解)。在声明完数组后,读者可以尝试使用数组的append()方法,给数组添加新的元素:

这时会出现编译器的报错信息,提示stringArray1还未被初始化,所以使用数组前还需要先初始化。那么如要初始化一个数组,我们可以编写以下代码:

动手写5.1.2 InitArray

这时会出现编译器的报错信息,提示stringArray1还未被初始化,所以使用数组前还需要先初始化。那么如要初始化一个数组,我们可以编写以下代码:(www.xing528.com)

动手写5.1.2 InitArray

控制台输出如下:

控制台输出如下:

这里用到了赋值运算符“=”和中括号的语法“[]”,这是一种快捷的语法,用来进行数组的初始化。像其他类型一样,数组也可以利用Swift的类型推断功能来声明。bookList2的类型就是编译器通过上下文进行推断的,bookList因为显式地声明了是存放String的数组,所以只能接收String类型的元素;而通过初始化语句,编译器推断出bookList2也是存放String的数组,一样不能接收String以外类型的元素。

这里用到了赋值运算符“=”和中括号的语法“[]”,这是一种快捷的语法,用来进行数组的初始化。像其他类型一样,数组也可以利用Swift的类型推断功能来声明。bookList2的类型就是编译器通过上下文进行推断的,bookList因为显式地声明了是存放String的数组,所以只能接收String类型的元素;而通过初始化语句,编译器推断出bookList2也是存放String的数组,一样不能接收String以外类型的元素。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈