// * * * * * Subscript * * * * *

// similar to subscript to Array, Dictionary, Class/Struct/Enum can have too

// ???? what's the diff from function, I can replace subscript with func

struct IcanMultiply {

var base:Int

subscript(number:Int) ->Int{

return number *base

}

}

var someInt = IcanMultiply(base:3)

someInt[4]

struct Matrix {

let rows,columns :Int

var grid : [Double]

init(row:Int,column:Int){

rows = row

columns = column

grid = Array(repeating:0.0,count:row*column)

}

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

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

}

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

get{

assert(isValidIndex(row: row, column: column),"index out bound")

return grid[row*columns+column]

}

set{

assert(isValidIndex(row: row, column: column),"index out bound")

grid[row*columns+column]=newValue

}

}

}

var someMatrix = Matrix(row:2, column: 2)

print(someMatrix.grid.count)

print(someMatrix.grid[0])

print(someMatrix[0,0])

//print(someMatrix[2,2])//assertion failed: index out bound:

someMatrix[0,0]=2.8

print(someMatrix[0,0])

when you using Subscript/Computed property, the getter and setter are used only when getting the value from the property or setting the value for the property, they will not be called in the same time. so there is no orderring problem.

swift subscript scraps相关推荐

  1. Swift:subscript

    通常情况下.我们在使用数组(Array)或字典(Dictionary)时会使用到下标.事实上在Swift中.我们还能够给类.结构.枚举等自己定义下标(subscript). 一.基本使用 struct ...

  2. Swift中的subscript

    Swift中通过subscript来定义角标 其中 类.结构体和枚举都可以定义subscripts, 就像数组一样使用一个实例 如下面的代码例子 struct TimesTable { let mul ...

  3. swift:自定义下标(subscript)

    下标脚本(subscript) 可以使用在类,结构体,枚举中 提供一种类似于数组或者字典通过下标来访问对象的方式 subscript可以重载,就是一个类可以定义多个下标脚本 可以设置为只读和读写 一. ...

  4. swift中字符串截取方法(substring)

    下面介绍2种swift的字符串截取方法,实际上用到了substringFromIndex,substringToIndex,substringWithRange 1.将String转化为NSStrin ...

  5. 超好用的Swift 4.0 字符截取快速便捷方法

    这篇文章给大家分享一个基于Swift4.0的超便捷字符串截取方法. 文章涉及的代码有些是引用自以前在stackoverflow上看到的几个问题的回答,不过问题包含什么关键词忘了,所以没有在这贴上连接, ...

  6. swift string转int_Swift进阶二:基本数据类型相关

    变量和常量 Swift中,使用关键字let来声明常量,使用关键字var来声明变量. 而在Objective-C中,如果没有特殊的指明,我们所声明的都是变量.可以通过如下几种方式来声明常量: 使用宏定义 ...

  7. Swift类与结构、存储属性、计算属性、函数与方法、附属脚本等

    一.类与结构体 两者在Swift中差不了多少了 类与结构体有很多相同的地方: (第2,3点是其他语言中不存在的) 1)都可以定义属性/方法/下标(结构体也可以定义方法了) 2)都能初始化(通过构造方法 ...

  8. [译] Swift 中的惰性序列及其原理

    原文地址:Lazy Sequences in Swift And How They Work 原文作者:Bruno Rocha 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/g ...

  9. swift和python语法区别_Swift 基本语法

    Swift 基本语法 在上一章节中我们已经讲到如何创建 Swift 语言的 "Hello, World!" 程序.现在我们来复习下. 如果创建的是 OS X playground ...

  10. [WWDC] What's New in Swift 4 ?

    前言 本文主要是笔者小结 WWDC2017 中 <What's New in Swift>的 Session ,其中也掺杂了些<What's New in Foundation> ...

最新文章

  1. 《星球大战:前线2》预告片发布
  2. 035_使用Enumeration遍历Vector元素
  3. c语言第四章循环程序设计,C语言程序设计教程第4章-循环结构程序设计
  4. LeetCode 744. Find Smallest Letter Greater Than Target (时间复杂度O(n))
  5. mysql数据库表中的类型_MySQL数据库中表类型MyISAM与InnoDB的区别
  6. Prototype(原型模式)
  7. php的对象和数组应该学js,JavaScript数组与对象的常用方法及 json 的序列化
  8. tensorflow2.1学习--常用函数三
  9. php 抽象类,接口,抽象方法,静态方法
  10. BZOJ2002[HNOI2010] 弹飞绵羊(LCT)
  11. 英雄联盟LOL静态HTML网页制作模板DⅣ+CSS学生网页作品代码游戏题材大学生网页设计作业下载
  12. 操作系统安全与系统攻击
  13. win10下安装Elasticsearch和kibana教程
  14. Photoshop(PS)CC2020安装教程【64位】
  15. 使用Hutool发送工作日报
  16. Oracle11.2.0.3 ORA-3136 连接超时错误解决
  17. LiveQing云平台直播点播流媒体服务-产品介绍及相关资源
  18. uPDF:免费功能强大的 PDF 全能工具箱, PDF 文件处理利器
  19. 如何在 ubuntu 上安装 mercury mw150us 网卡驱动
  20. tf.constant用法

热门文章

  1. unity3d开发AR/VR应用
  2. DP(Nietzsche)的hu测 T3(规律?主席树)
  3. Wasserstein距离
  4. 对比excel 轻松学python百度云_解读《对比Excel轻松学习Python数据分析》
  5. 织梦dede列表分页样式
  6. Python实战 | 送亲戚,送长辈,“ 月饼 ”可视化大屏来帮忙。
  7. 分级基金下折套利风险介绍
  8. vmware linux虚拟机中添加硬盘
  9. 【SSL】2278Oliver的救援
  10. std::equal 用法