swift学习心得 - 基本运算符

闲言碎语:apple的swift已经2.1了,自己刚看1.0的时候总觉得swift还太年轻,还有很多不完善,就没有太在意。不过现在都更新到2.1了。apple的官方宣传说swift效率很高(开发和性能)再加上BOSS说以后要用swift开发.自己就开始学习swift。看了两天写下自己的心得

一,基本运算符

swift​中的基本运算符:

赋值运算符( a=b )

算术运算符( a+b、a-b、a*b 、a/b 、a%b、a++、a--、++a、--a、+a、-a)

比较运算符( a==b、a>b、a=b、a<=b、a!=b )

组合赋值运算符(a+=b、a-=b、a*=b、a/=b )

三目运算符( question ? answer1: answer2 )

逻辑运算符( !a 、 a&&b 、a||b )

空合运算符( a??b)

区间运算符( a...b)

以上就是swift的基本运算符,对于前六个我想就不用多说了,只要会编程语言的就知道(如果不知道所有的程序猿都会鄙视你的哦)​

空合运算符??是oc和c++中没有的。​下面是官方文档

填写图片摘要(选填)
填写图片摘要(选填)

​意思是说a??b的意思是如果a为 nil 那么 就返回一个 b 如果a 不为nil 那么就解包a返回a的值所以

1、为了类型安全b的类型要和a 的类型相同

2 、a必须是optional类型​

a??b 也可以用a=!nil? a! :b表示

Example:

<span style="color:#333333;">extension Int{
    
    func productRandom() -> [Int]
    {
        var arrayList:[Int] = [Int]()
        
        for var i=0; i<self; i++
        {
            let a:Int = Int(arc4random_uniform(100))
            arrayList.append(a)
        }
        return arrayList
    }
    
}
  class ViewController: UIViewController {
    
    var arrayList:[Int]?
    var defaultList = 20.productRandom()
    var nums:[Int] = [Int]()
    func test1(){
       nums = arrayList ?? defaultList
        
        print(nums)
    }
    func test2(){
        arrayList = 30.productRandom()
         nums = arrayList ?? defaultList
        print(nums)
    }

 override func viewDidLoad() {
        super.viewDidLoad()
        
        test1()
        test2()
 }
}</span>
test1()输出为(arrayList 没有初始化时nums 为defaultList)


test2()输出为(arrayList已经初始化 nums 为ArrayList)


空合运算符可以极大的简化代码。也可以增强程序的健壮性,可读性

​区间运算符a...b

填写图片摘要(选填)
填写图片摘要(选填)

​区间运算符主要用在有区间的数组中 ,

a..b 表示a到b的值包括a和b

a..<b 表示a到b的值包括a不包括b

example:继续在viewController中添加方法

  func rangeTest1(){
        for index in 0...nums.count-1{
            print("\(index):\(nums[index])")
        }
    }
    func rangeTest2(){
        for index in 0..<nums.count-1{
            print("\(index):\(nums[index])")
        }
    }

然后在viewDidLoad中使用

        rangeTest1()
        rangeTest2()
可以先将test1()、test2()中的print()注释

打印后可以发现

rangeTest1()会输出30个数

rangeTest2()会输出29个数


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值