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

相关文章

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

2748. 美丽下标对的数目(Rust暴力枚举)

题目 给你一个下标从 0 开始的整数数组 nums 。如果下标对 i、j 满足 0 ≤ i < j < nums.length ,如果 nums[i] 的 第一个数字 和 nums[j] 的 最后一个数字 互质 ,则认为 nums[i] 和 nums[j] 是一组 美丽下标对 。 返回 nums 中 美丽下标对 的总数目。 对于两个整数 x 和 y ,如果不存在大于 1 的整数可以整除它们,

刷题——找到对应数组目标值的下标

二分查找-I_牛客题霸_牛客网 方法一:遍历找目标值 int search(vector<int>& nums, int target) {// write code herefor(int i = 0; i < nums.size(); i++) {if(target == nums[i]) {return i; // 返回目标值在数组中的索引}}return -1; // 如果找不到目

Day 28:2748. 美丽下标对的数目

Leetcode 2748. 美丽下标对的数目 给你一个下标从 0 开始的整数数组 nums 。如果下标对 i、j 满足 0 ≤ i < j < nums.length ,如果 nums[i] 的 第一个数字 和 nums[j] 的 最后一个数字 互质 ,则认为 nums[i] 和 nums[j] 是一组 美丽下标对 。 返回 nums 中 美丽下标对 的总数目。 对于两个整数 x 和 y ,

力扣每日一题 美丽下标对的数目 枚举 哈希

Problem: 2748. 美丽下标对的数目 👨‍🏫 参考题解 🍻 暴力法 class Solution {public int countBeautifulPairs(int[] nums) {int res = 0; int n = nums.length;for(int i = 0; i < n; i++){while(nums[i] >= 10){nums[i]

JS 数组对象根据下标拆分成新的数组

真为难啊!   var arr = [{guigeArr:['蓝色','XL','3','S']},{guigeArr:['蓝色','L','6','S']},{guigeArr:['蓝色','L','3','S']},{guigeArr:['蓝色','XL','6','S']},{guigeArr:['黑色','XL','3','S']},{guigeArr:['黑色',

LeetCode 每日一题 2748. 美丽下标对的数目

Hey编程小伙伴们👋,今天我要带大家一起解锁力扣上的一道有趣题目—— 美丽下标对的数目 - 力扣 (LeetCode)。这不仅是一次编程挑战,更是一次深入理解欧几里得算法判断互质的绝佳机会!🎉 问题简介 题目要求我们给定一个整数数组 nums,找出所有满足特定条件的下标对。这里的特定条件是:如果 nums[i] 的第一个数字和 nums[j] 的最后一个数字互质,那么我们称这对下标为“美丽

Swift3.0 GCD多线程示例

///func mainThread(){// 开一条全局队列异步执行任务DispatchQueue.global().async {/* Group的用法* 1. notify(依赖任务), 必须和 enter/leave在同一队列才会执行* 2. wait(任务等待)* 3. enter/leave 手动管理group计数,enter和leave必须配对, 可以不需要wait()*/