[Swift 语法点滴]——数组参数

Swift语言一如既往的继承了苹果公司卓尔不群的奇葩思维方式,总是要弄得跟别的语言不一样,才能显出它的特殊

比如用数组作为参数上,这格式实在是没有试出来,找了stackoverflow,才找到相应信息,在此作以总结:

 

1.普通常量数组参数:

  Swift和java C#不同,普通的参数是常量型,这也体现了他们重视性能的编程理念,形参在函数中不允许更改,

  代码格式如下:

1 let a=[1,2,3]
2 func  b(arr:[Int])
3 {
4    println("\(arr[0])")
5 }
6 b(a)

2.变量参数:

  声明形参时,需要在形参前用var 修饰,代码:

var a=[1,2,3]
func b(var arr:[Int])
{
    arr[0]=5;
    println("\(arr[0])")
}
b(a)

但是,实际上,这种传递是值传递,a[0]仍然是1

3. inout 数组参数:

 声明参数是,需要在形参前加上inout修饰,这才代表是引用传递,形参的改变会反应到实参上。代码:

var a=[1,2,3]
func b(inout arr:[Int])
{
   arr[0]=5
   println("\(arr[0])")
}
b(&a)
print("\(a[0])")

 注意:使用时,传递的是地址,所以实参要使用&来取数组地址

 这次,a[0]在调用函数后,真正改变为5

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。