详解Swift编程中下标的用法

2020-01-08 22:33:51刘景俊

        }}}var p = daysofaweek()

 

println(p[0])
println(p[1])
println(p[2])
println(p[3])


当我们使用 playground 运行上面的程序,得到以下结果

 


Sunday
Monday
Tuesday
Wednesday

下标选项
下标采用单一到多元的输入参数,这些输入参数也属于任意数据类型。还可以使用变量,可变参数的参数。下标不能提供缺省参数值,或使用任何 in-out 参数。

定义多个标被称为“下标重载'在一个类 或结构体根据需要可以提供多个下标定义。这些多个标是基于被下标括号内声明值的类型推断。

复制代码
structMatrix{let rows:Int, columns:Intvarprint:[Double]
    init(rows:Int, columns:Int){self.rows = rows
        self.columns = columns
        print=Array(count: rows * columns, repeatedValue:0.0)}
    subscript(row:Int, column:Int)->Double{get{returnprint[(row * columns)+ column]}set{print[(row * columns)+ column]= newValue
        }}}var mat =Matrix(rows:3, columns:3)

 

mat[0,0]=1.0
mat[0,1]=2.0
mat[1,0]=3.0
mat[1,1]=5.0

println("(mat[0,0])")
println("(mat[0,1])")
println("(mat[1,0])")
println("(mat[1,1])")


当我们使用 playground 运行上面的程序,得到以下结果

 


1.0
2.0
3.0
5.0

Swift 下标支持单参数到多参数声明相应数据类型。该程序声明的“矩阵”结构为2*2维数组矩阵来存储 “Double” 数据类型。 矩阵参数被输入整数数据类型用来声明行和列。

矩阵新实例是通过使行和列数来初始化创建的,如下所示。

复制代码
 var mat = Matrix(rows: 3, columns: 3) 
矩阵值可通过传递行和列值到下标,通过逗号隔开,进行定义如下所示。

 

 

复制代码
mat[0,0] = 1.0  
mat[0,1] = 2.0
mat[1,0] = 3.0