首页 > 其他分享 >Swift - 区间运算符(... 和 ..<)

Swift - 区间运算符(... 和 ..<)

时间:2023-08-23 12:31:33浏览次数:28  
标签:index .. 运算符 let words 区间 Swift

区间运算符可以用来表示两个操作数之间的范围集合

1,闭区间运算符:a...b

for icount in 512...1024 {
            print(icount)//从512遍历到1024(包括1024)
        }

2,半闭区间运算符:a..<b

et fruts = ["apple","orange","banana"]
        let icount = fruts.count
        for i in 0..<icount {
            print("第\(i+1)个水果是\(fruts[i])")
        }

注:使用 ..<来创建一个不包含最大值的区间,使用 ... 来创造一个包含最大值和最小值的区间

3,字符串范围也可以使用区间运算符

//字符串截取
        let words = "hhggll.com"
        
        //不使用区间运算符
        let index = words.index(words.startIndex, offsetBy: 4)
        let index2 = words.index(words.startIndex, offsetBy: 6)
        let range1 = Range(uncheckedBounds: (lower: index, upper: index2))
        let rangeStr1 = words.substring(with: range1) //ge
        print(rangeStr1)
        
        //使用区间运算符
        let range2 = words.index(words.startIndex, offsetBy: 4)..<words.index(words.startIndex,offsetBy: 6)
        let rangeStr2 = words.substring(with: range2) //ge
        print(rangeStr2)

4,倒序循环

通过reversed()方法,我们可以将一个正序循环变成逆序循环,代码如下:

for  i in (0..<10).reversed(){
    print(i)
}

5,区间运算符除了返回一个Range外,还可以接受Comparable的输入,返回闭区间和半闭区间,所以我们可以用这个特性检查字符串里的字符是不是都是合法字符(比如是不是都是小写)

let hWords = "Hhggll.com"
let interval = "a"..."z"
for c in hWords.characters {
   if !interval.contains(String(c)) {
        print("\(c)不是小写字母")
   }
            
}

 



作者:稻草人11223


标签:index,..,运算符,let,words,区间,Swift
From: https://blog.51cto.com/u_13188203/7201415

相关文章

  • Android入门教程之Activity(生命周期,启动...)
    Activity是一个应用组件,用户可与其提供的屏幕进行交互,以执行拨打电话、拍摄照片、发送电子邮件或查看地图等操作。每个Activity都会获得一个用于绘制其用户界面的窗口。窗口通常会充满屏幕,但也可小于屏幕并浮动在其他窗口之上。Activity1.Activity的使用我们新建的工程中带有......
  • Go-运算符
    1运算符分类1算数运算符:+,-,*,/,%,++,--2赋值运算符:=,+=,-=,*=,/=,%=3关系运算符:==,!=,<,>,<=,>=4逻辑运算符:&&,||,!5位运算符:&,|,^6其他运算符:&,*2算数运算符:2.1”+“示例packagemainimport"fmt"funcmain(){ //"+"可以表示正数 varx=......
  • Mixture-of-Domain-Adapters: Decoupling and Injecting Domain Knowledge to Pre-tra
    1.Abstract经过预训练的语言模型(PLM)表现出在通用领域理解文本的出色能力,同时在特定领域中表现不佳。尽管在大型领域特定语料库上继续预训练是有效的,但调整领域上的所有参数是昂贵的。在本文中,我们研究了是否可以通过只调整几个参数来有效地调整PLM。具体来说,我们将Transformer架......
  • Leetcode 两个队列实现栈 swift
    queue1 是最后生成的栈queue2是临时队列,把新进来的先放进去,再把queue1里的数据从头到尾读进去,然后互换classMyStack{varqueue1:[Int]=[]varqueue2:[Int]=[]init(){}funcpush(_x:Int){queue2.append(x)whil......
  • swift--控件工厂类的实现
    控件工厂类,简而言之就是,减少代码的复用率,只在哪里用,然后在哪里调:代码如下:importUIKitclassViewFactory:UIView,UITextFieldDelegate{//默认控件的尺寸classfuncgetDefaultFrame()->CGRect{letdefaultFrame=CGRect(x:0,y:0,width:100,height......
  • swift--动画效果
    一、for循环创建4*4个view,然后对立面的所有view进行动画,这里列集中动画的效果:1,旋转动画fortileinbackgrounds{//现将数字块大小职位原始尺寸的1/10tile.layer.setAffineTransform(CGAffineTransform(scaleX:0.1,y:0.1))......
  • swift--使用 is 和 as 操作符来实现类型检查和转换 / AnyObject与Any的区别
    声明几个类://动物类classAnimal{}//陆地动物类classterricole:Animal{}//海洋动物类classSeaAnimals:Animal{}1,is用来做类型检查letcat=terricole()letfish=SeaAnimals()letarr=[cat,fish]foranima......
  • swift--触摸(UITouch)事件(点击,移动,抬起)
    触摸事件:UITouch:一个手机第一次点击屏幕,会形成一个UITouch对象,知道离开销毁。表示触碰。UITouch对象能表明当前手指触碰的屏幕位置、状态,状态分为开始触碰、移动、离开。具体方法介绍如下:1.overridefunctouchesBegan(_touches:Set<UITouch>,withevent:UIEvent?)通知调用者当......
  • swift--添加新手引导页
    swift和oc逻辑上都是一样的,只是写法不一样,可以使用一个view,也可以使用一个viewController,两种都可以的,使用view注意初始化的时候给他一个frame,vc的话,直接在本控制器里面写控制即可! 1,创建一个vc,然后在里面初始化一个scrollview,升值contentsize为3*页面宽度,然后添加图片,最后可以实......
  • swift--获取window
    有时候,我们需要频繁的调用界面,然后给当前页面加一个跟视图,这个时候就需要找windown,代码如下:letrootVC=UIApplication.shared.delegateas!AppDelegaterootVC.window?.rootViewController=MainVC()这样即可!仅供参考!作者:稻草人11223......