Swift3.0 - 下标

2024-06-11 01:32
文章标签 swift3.0 下标

本文主要是介绍Swift3.0 - 下标,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Swift3.0 - 真的很简单
Swift3.0 - 数据类型
Swift3.0 - Array
Swift3.0 - 字典
Swift3.0 - 可选值
Swift3.0 - 集合
Swift3.0 - 流控制
Swift3.0 - 对象和类
Swift3.0 - 属性
Swift3.0 - 函数和闭包
Swift3.0 - 初始化和释放
Swift3.0 - 协议protocol
Swift3.0 - 类和结构体的区别
Swift3.0 - 枚举
Swift3.0 - 扩展
Swift3.0 - 下标
Swift3.0 - 泛型
Swift3.0 - 异常错误
Swift3.0 - 断言
Swift3.0 - 自动引用计数(strong,weak,unowned)
Swift3.0 - 检测API
Swift3.0 - 对象的标识
Swift3.0 - 注释
Swift3.0 - 元类型
Swift3.0 - 空间命名
Swift3.0 - 对象判等
Swift3.0 - 探究Self的用途
Swift3.0 - 类簇
Swift3.0 - 动态调用对象(实例)方法
Swift3.0 - 文本输出
Swift3.0 - 黑魔法swizzle
Swift3.0 - 镜像
Swift3.0 - 遇到的坑

  • 定义
subscript(index: Int) -> Int {get {}set(newValue) { }
}
  • 应用

a.需求: 获取字符串第2个字符

一般写法:

func getCharacterByIndex(n:Int,string:String)-> Character?{let index = string.characters.index(string.characters.startIndex, offsetBy:n)return  string.characters[index]
}
let c = getCharacterByIndex(n: 2, string: "你好吗")

我们扩展下表写法

let string = "你好,我是酷走天涯"
extension String{subscript(n:Int)->Character{let index = string.characters.index(string.characters.startIndex, offsetBy:n)return  string.characters[index]}
}
let c = string[1] // 是不是简便很多

b.需求: .截取范围内的字符串

extension String{subscript(begin:Int,end:Int) -> String{let range = self.index(startIndex, offsetBy: begin)...self.index(startIndex, offsetBy: end)return self[range]      }
}
// 调用
let subString = string[2,4]

更优雅的写法

extension String{
subscript(range:ClosedRange<Int>)->String{let range = self.index(startIndex, offsetBy: range.lowerBound )...self.index(startIndex, offsetBy: range.upperBound)return self[range]
}
}
let subString = string[1...5]
  • 注意

1.下标的参数不能是inout 修饰的类型
2.类或者结构体可以提供任意多个下标实现
3.下标也是可以在枚举中使用的

这篇关于Swift3.0 - 下标的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1049835

相关文章

判断一组数据重复,得到对应的下标。

demo://保存下标Set<Integer> xb = new HashSet<Integer>();for(int i=0;i<list.length;i++){back:for(int j=i+1;j<list.length;j++){if(list[i].equals(list[j])){xb.add(i);xb.add(j);break back;}}}//end,中间这块xb.fo

【算法每日一练及解题思路】找出模式匹配字符串的异位词在原始字符串中出现的索引下标

【算法每日一练及解题思路】找出模式匹配字符串的异位词在原始字符串中出现的索引下标 一、题目:找出模式匹配字符串的异位词在原始字符串中出现的索引下标 二、举例: 两个字符串原始字符串initStr=123sf3rtfb,模式匹配字符串regx=f3s,找到模式匹配字符串regx(regx的异位词为f3s,fs3,3fs,3sf,sf3,s3f)在原始字符串initStr的索引下标2(对应3fs

在数组中进行二分查找找出某数在数组中的下标

//java coding import java.util.Scanner; /**  * @author   * 2014-5-22 下午04:29:56  * 二分查找  */ public class Binary_search { public static int device(int[] a,int c) { int beg

Leetcode面试经典150题-28.找出字符串第一个匹配项的下标

解法都在代码里,不懂就留言或者私信,比第一题稍微难点 用KMP解这个题简直就像大炮打蚂蚁,但是没办法,现在都是这么卷 package dataStructure.bigFactory;public class _28Strstr {public static int strStr(String s1, String s2) {/**健壮性判断*/if(s1 == null || s2 ==

四、5 下标引用、函数调用、结构成员(操作符)

(1)下标引用 [ ] (2)函数调用 ( ) (3)结构成员

Python 字典删除下标前两个

Python 字典删除下标前两个 在 Python 中,字典是映射类型,可以将键(key)与值(value)关联起来。有时,我们需要从字典中删除某些键值对,以下我们将学习如何删除字典中的下标前两个元素。 示例 # 创建一个字典d = {'a': 1, 'b': 2, 'c': 3, 'd': 4}# 删除下标前两个元素del d['a']del d['b']print(d) # 输出

代码随想录算法训练营第九天| 151.翻转字符串里的单词、卡码网55.右旋转字符串 、28. 找出字符串中第一个匹配项的下标、459. 重复的子字符串

Leetcode151.翻转字符串里的单词 题目链接:151. 反转字符串中的单词 C++: class Solution {public:void remove_blank(string &s){int slow = 0;for(int fast=0; fast < s.size(); fast++){if(s[fast] != ' '){if(slow > 0)s[slow++] =

Leetcode3185. 构成整天的下标对数目 II

Every day a Leetcode 题目来源:3185. 构成整天的下标对数目 II 解法1:哈希 本质思路类同经典的“两数之和”。枚举右,用哈希表维护左。 枚举 j,并维护 cnt[x] 表示所有满足 i < j 的下标 i 中,有几个 hours[i] 模 24 等于 x。设 y = nums[j] % 24,那么答案就是 sum(cnt[(24 - y) % 24])。 注意

算法与数据结构 | 数组 / 为什么数组下标从0开始编号?

文章目录 什么是数组?如何实现随机访问低效的“插入”和“删除”警惕数组的访问越界问题容器能否完全替代数组为什么数组的下标都是从0开始呢? 什么是数组? 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据 如何实现随机访问 线性表 数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向除了数组,链表、队列、栈等也是线性

PHP 获取数组任意下标key的上一个prev和下一个next下标值

PHP 获取数组任意下标key的上一个prev和下一个next下标值 <?php $xoops[1] = '小';$xoops[2] = '孩';$xoops[3] = '子';$xoops[4] = '气';$steps = new Steps();foreach($xoops as $key=>$value){$steps->add($key);}$steps->setCu