swift入门(4)

1.字典

 

  1.1字典的概念和声明

          Swift 字典用来存储无序的相同类型数据的集合,Swift 字典会强制检测元素的类型,如果类型不同则会报错。Swift 字典每个值(value)都关联唯一的键(key)作为字典中的这个值数据的标识符。

            以下是一些声明字典的语法:

 5368a643a79c4e8886ea4a1fd04f4d35.png

 

          此外,也可以省略对字典的类型的定义,swift会自动进行判断,但要保证一个字典内的类型一致。

 

  1.2字典的访问

            字典中的数据项并没有具体顺序。我们在需要通过键(key)访问数据的时候使用字典,这种方法很大程度上和我们在现实世界中使用字典查字义的方法一样。 

            以下是字典访问的示例:
 

bc843d6a9d604a6eae66cf772b5a3453.png

 

              如果我们不想使用下标来进行一个一个的输出,可以使用循环直接进行输出:

b216a1b4ac9b464b86aa1fbaf025037b.png

               

              观察以上代码,可以发现输出结果并没有按顺序,这也揭示了字典的另一个特性,无序性。

 

3d8a8f94c8484d60aa16dfa39aa0fa76.png

 

            再输出一次,顺序再次不同。   

 

  1.3字典的修改

            字典和数组类似,可以通过后期的改动对字典进行修改。对于增添或修改,可以使用updateValue()    ,对于删除可以使用removeValueForKey()   。下面是代码演示:

 

2205d3eeb9354b9da54e06dc2faa8639.png

 

 

2.函数

  2.1函数的概念和声明

            Swift 函数用来完成特定任务的独立的代码块,Swift 函数包含了参数类型及返回值类型,

函数声明: 告诉编译器函数的名字,返回类型及参数。

            Swift 定义函数使用关键字 func,基本的格式如下:

func funcname(形参) -> returntype
{
   Statement1
   Statement2
   ……
   Statement N
   return parameters
}

            下面演示定义一个string类型的函数:

       42fde94cfe00469e904ff9da839b62bf.png

            此外,函数还可以省略返回值和省略形参,如:

                                    f08487881efa45d5a102207ff2b13bfb.png

                  注意:无论有没有形参和返回值,前面的()不能省略

 

 

  2.2函数的调用

       对于有返回值的函数,调用函数时需要使用print语句,如:

af9f2db055774243944462d31ce8ef6c.png

      而对于没有返回值的函数:

c8ae698202e44146b54bd36b26773c0c.png

 

  此外,如果我们每次调用函数时都要打形参的名字,我们可以将其省略:

7df2647e634b4c938a6ddadd0494ec31.png

 

  2.3函数对于数组的使用

            在上面的例子中,我们已经知道了如何去调用函数并对函数进行传参,但如果我们要传的数据很多呢,一个一个的写太过于麻烦,因此我们可以使用以下的写法:

                3eb30dcad43546a39691446de8021d36.png

 

           

 3.结构体

  3.1结构体的概念和声明

            Swift 结构体是构建代码所用的一种通用且灵活的构造体。我们可以为结构体定义属性(常量、变量)和添加方法,从而扩展结构体的功能。

             在swift别的数据类型中,没有一个可以将所有类型的元素(包括函数)放在一个集合里,但有时我们又需要,我们通过结构体就可以做到。  

下面是结构体的基本语法:

struct 结构体的名字 { 
   Definition 1   //对应的数据名称
   Definition 2
   ……
   Definition N
}

  

  3.2结构体的使用

            结构体一般通过(.+名称)的方式进行调用,且使用一个变量名来进行值的传递,不能直接使用结构体的名字输出。这是因为定义的结构体名称是一个整体,我们通过这个名称来对内容进行调用。如:

d55153f9127441c3a9df204bbf5a0f86.png          

这样就可以打印出三个成绩:

 

39e09a3feccd44c3a8f524d9cc35291f.png

 

结构体具有一个特点:结构体可以装下任何的数据类型,如我要打印一个学生的成绩表,并用函数将学生的成绩进行求和:

 

19cdb54d393443269a0cdd5d86db33bf.png

 

上面这段代码中,有几个要注意的点:

1.对函数的命名前要加一个 mutating   ,表示这个类型是可以修改的,不加的话会出现以下报错:

829ee58649524302a5527119e79c9614.png

 

这是因为在结构体中,数值应该是被确定的,不易被改变,所以我们要加上mutating 让他变成一个可以突变的类型来去使用它。

 

2.在对sum进行定义时,使用了一个可选类型,这可以让我们在后面去对结构体进行定值的时候将其省略不写,让sum被函数来进行赋值。

 

3.在对函数定义时,我没有定义函数的返回值,所以要调用函数时直接写即可对sum成功赋值。

 

 

 

 

参考资料:

1.swift开发(2023最新版) Swift 5.9-xcode 15

2.Swift教程 | 菜鸟教程

3.mutating的介绍和使用

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值