通过类的计算属性set和get,我们可以对索引的加减进行保护。下面是一个样例,索引index初始值是0,有效范围是0~2。不管是index++还是index--,索引都是一直在这个范围能循环遍历。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Test {
    var _index = 0
    var index:Int {
        get{
            return _index
        }
        set{
            _index = newValue
            if _index < 0 {
                _index += 3
            }else if _index > 2 {
                _index -=3
            }
        }
    }
     
    func onNext(){
        index++
    }
     
    func onPre(){
        index--
    }
}

转载于:https://www.cnblogs.com/Free-Thinker/p/4838617.html

Swift - 使用set,get确保索引加减在正常的范围内相关推荐

  1. redis lua 抽奖 PHP,通过redis+lua实现加减库存

    一. 场景 下单后库存校验或者秒杀场景下,有很多利用"锁"的方案来解决问题.但是加锁其实是一件性价比很低的事,所以我们采用用redis+lua的方式来实现这个功能. 二. 思路 阶 ...

  2. mysql 字段加减_Mysql常见问题及优化

    一.库表设计 1.1 引擎选择 在 mysql 5.1 中,引入了新的插件式存储引擎体系结构,允许将存储引擎加载到正在运新的 mysql 服务器中.使用 mysql 插件式存储引擎体系结构,允许数据库 ...

  3. mysql 字段加减_MySQL数据库开发常见问题及优化(续)

    在设计表或索引时,常出现以下几个问题: 1.少建索引或不建索引.这个问题最突出,建议建表时 DBA 可以一起协助把关. 2.索引滥用.滥用索引将导致写请求变慢,拖慢整体数据库的响应速度(5.5 以下的 ...

  4. db2 日期加减一天_常用SQL系列之(八):列值累计、占比、平均值以及日期运算等...

    本系统为@牛旦教育IT课堂在微头条上发布的内容,为便于查阅,特辑录于此,都是常用SQL基本用法. 前两篇连接: (一):SQL点滴(查询篇):数据库基础查询案例实战 (二):SQL点滴(排序篇):数据 ...

  5. 【Scratch】青少年蓝桥杯_每日一题_7.09_加减大师

    用心写好每一篇文章 效果图 一.题目背景 本题是Scratch编程问题,出现在蓝桥杯第十一届的选拔赛考试中. 二.编程实现 博士汪是加减大师,它会随机地出加减算式,并判断玩家回答的得数是否正确.如果它 ...

  6. python中列表实现自加减元素_python初学者知识整合

    python 第一章:概述 1. 概述 Python是一门跨平台.开源.免费的解释型高级动态编程语言. ① 编译:笔译,用理解原文本 ② 解释:口译,逐字逐句解释,不产生新文本 Python中的可迭代 ...

  7. 日期加减加1天_2小时整理了13个时间日期函数,动图演示简单易学,收藏备用吧...

    Hello,大家好,今天跟大家整理汇总了13个工作中经常用到的日期与时间函数的使用方法,学会它们几乎可以解决所有工作中遇到的,关于日期与时间提取与转换的问题.话不多说,让我们直接开始吧 一.了解时间与 ...

  8. 加加减减的奥秘——从数学到魔术的思考(三)

    爱学习,勤思考:学数学,玩魔术 在前面两期的系列文章中,(见公众号历史消息或菜单)传送门: 加加减减的奥秘--从数学到魔术的思考(一) 加加减减的奥秘--从数学到魔术的思考(二) 我们已经从数学原理的 ...

  9. greenplum 查询出来的数字加减日期_常用SQL系列之(八):列值累计、占比、平均值以及日期运算等

    本系统为@牛旦教育IT课堂在微头条上发布的内容,为便于查阅,特辑录于此,都是常用SQL基本用法. 前两篇连接: (一):SQL点滴(查询篇):数据库基础查询案例实战 (二):SQL点滴(排序篇):数据 ...

最新文章

  1. inline-block元素4px空白间隙的解决办法
  2. TX2---ORB_SLAM2
  3. linux learning site
  4. STM32使用串口IDLE中断的两种接收不定长数据的方式
  5. .NET Core微服务 权限系统+工作流(二)工作流系统
  6. 分治法在排序算法中的应用(JAVA)--归并排序
  7. hibernate VS mybatis
  8. 8月13日见!三星Note 20国行版官宣:唯一悬念只剩价格
  9. 一个用于消息队列的并发式php进程管理程序-守护
  10. VC++ DLL注入目标程序
  11. [CSS揭秘]不规则投影
  12. Java设计模式-工厂模式
  13. ubuntu下配置nginx支持phpt(unix:/var/run/php5-fpm.sock failed (2: No such file or directory) )
  14. 文书录入登记软件的其它模块源码
  15. 深度学习理论——ssd从之前的网络断点接着训练
  16. 互动媒体技术——对十二个“一”的文艺创作作业进行文本分析、统计和可视化
  17. GitHub快速学习-三
  18. Yapieasyapi文档管理平台安装与使用
  19. ZipFile解压文件
  20. vue this.$refs 打印出来是空的原因

热门文章

  1. 【❌❌vectorの奇技淫巧⭕⭕】C++ vector 如何正确处理动态申请内存的元素
  2. redisson集成spring-session和shiro实现分布式session
  3. Docker安装zookeeper 单节点安装
  4. 一文看懂NumPy的切片中常用的冒号
  5. Android源码分析--MediaServer源码分析(一)
  6. Android MediaRecorder架构详解
  7. java定义商品金额_老大说:谁要再用double定义商品金额,就自己收拾东西走
  8. 查询数据的排序的位置_简单选择排序C++实现
  9. python字符串注释_python字符串注释_Python学习笔记-字符串与注释
  10. oom 如何避免 高并发_【面试题】如何设计一个高并发系统?