博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift 数组
阅读量:5228 次
发布时间:2019-06-14

本文共 1286 字,大约阅读时间需要 4 分钟。

  个人觉得对于已经有过oc开发经验的人来说,学习swift最快的就是学好基础!基础学好,学扎实了,到后面基本就感觉很容易了。

      

import Foundation

 

//1.数组的基本认识

var 数组1 = [1,2,3,4,5,6,7]

 

数组1[0] = 3

 

数组1

 

 

//求指定半径的圆的面积 S = pi*r^2

struct Square {

    subscript(radius:Double)->Double{

        //pow函数:2个参数a和b,求a的b次方

        

        return M_PI*pow(radius, 2)

        

    }

}

 

let s1 = Square()

s1[5]

 

//2.多参数下标:

// 一个2*2的矩阵,变成数组[5,6,2,8]

//通过下标矩阵[行,列]来访问

 

/*

        第0列   第1列

  第0行    5      6     元素序号:所在列+【所在行*总列数】

  第1行    2      8     元素序号:所在列+【所在行*总列数】

*/

struct Matrix {

    var rows,columns:Int

    var grid:[Int]

    

    init(rows: Int, columns: Int){

        self.rows = rows

        self.columns = columns

        

        grid = Array(count: rows * columns, repeatedValue: 0)

    }

    //检查索引是否超越数组大小

    func indexIsValid(row:Int, column:Int)->Bool{

        return row >= 0 && row < rows && column >= 0 && column < columns

    }

    //用下标方法 来存取矩阵对应的数组

    subscript(row:Int, column:Int) ->Int{

        //取回矩阵对应的数组中的值

        get {

            assert(indexIsValid(row, column: column), "下标越界")

            return grid[(row * columns) + column]

        }

        //根据索引设置矩阵值到数组中

        set {

            assert(indexIsValid(row, column: column), "下标越界")

            grid[(row * columns) + column] = newValue

        }

    }

}

var aMatrix = Matrix(rows: 3, columns: 3)

 

aMatrix[0,0] = 1

aMatrix[0,1] = 2

aMatrix[0,2] = 3

aMatrix[1,0] = 4

aMatrix[1,1] = 5

aMatrix[1,2] = 6

aMatrix[2,0] = 7

aMatrix[2,1] = 8

aMatrix[2,2] = 9

 

for i in aMatrix.grid{

    println(i)

}

 

转载于:https://www.cnblogs.com/cxc-1314/p/4509331.html

你可能感兴趣的文章
exit和return的区别
查看>>
发布一个JavaScript工具类库jutil,欢迎使用,欢迎补充,欢迎挑错!
查看>>
discuz 常用脚本格式化数据
查看>>
洛谷P2777
查看>>
PHPStorm2017设置字体与设置浏览器访问
查看>>
SQL查询总结 - wanglei
查看>>
安装cocoa pods时出现Operation not permitted - /usr/bin/xcodeproj的问题
查看>>
makefile中使用变量
查看>>
GIT笔记:将项目发布到码云
查看>>
JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别
查看>>
JavaScript 鸭子模型
查看>>
SQL Server 如何查询表定义的列和索引信息
查看>>
GCD 之线程死锁
查看>>
NoSQL数据库常见分类
查看>>
一题多解 之 Bat
查看>>
Java 内部类
查看>>
{面试题7: 使用两个队列实现一个栈}
查看>>
【练习】使用事务和锁定语句
查看>>
centos7升级firefox的flash插件
查看>>
Apache Common-IO 使用
查看>>