「MacOS」Swift 第二章:基本运算符

news/2024/7/20 21:56:36 标签: swift, ios

额发现还是要写很多章,因为内容太多导致快速笔记也很多…

2 基本运算符

除了在不同语言中通用的运算符代表的功能,swift还对运算符进行了改进,例如使用运算符后的结果会被自动检测并禁止溢出,以此来避免保存变量时由于变量大于或小于其类型所能承载的范围时导致的异常结果。当然,swift允许溢出运算符实现溢出。

swift还提供区间运算符,例如 a..<ba...b

本章节只描述基础运算功能实现,高级运算符、自定义运算符、自定义类型的运算符重载等有专门章节说明。

2.1 术语

  • 一元运算符:操作对象为一个,例如-a
  • 二元运算符:操作对象为两个,例如a + b
  • 三元运算符:操作对象为三个,例如a ? b : c

2.2 算术运算符

  • 赋值:=

  • 加法:+

  • 减法:-

  • 乘法:*

  • 除法:/

  • 求余:%

  • 复合运算:+= -= 等等

  • 等于:==

  • 大于:>

  • 小于:<

  • 不等于:!=

  • 大于等于:>=

  • 小于等于:<=

  • 三元运算符:a ? b : c // a是表达式,表达式true则b,false则c

  • 空合运算符:a ?? b
    a为可选类型,如果a含值则返回a含的值,如果不含值则返回b,b的数据类型和a含值类型一样

    swift">let defaultColorName = "red"
    var userDefinedColorName: String?   //默认值为 nil
    
    var colorNameToUse = userDefinedColorName ?? defaultColorName
    // userDefinedColorName 的值为空,所以 colorNameToUse 的值为 "red"
    
    userDefinedColorName = "green"
    colorNameToUse = userDefinedColorName ?? defaultColorName
    // userDefinedColorName 非空,因此 colorNameToUse 的值为 "green"
    
  • 区间运算符:a … b

    swift">for index in 1...5 {
    	print("\(index) * 5 = \(index * 5)")
    }
    // 1 * 5 = 5
    // 2 * 5 = 10
    // 3 * 5 = 15
    // 4 * 5 = 20
    // 5 * 5 = 25
    
  • 半开区间运算符

    swift">let names = ["Anna", "Alex", "Brian", "Jack"]
    let count = names.count
    for i in 0..<count {
    	print("第 \(i + 1) 个人叫 \(names[i])")
    }
    // 第 1 个人叫 Anna
    // 第 2 个人叫 Alex
    // 第 3 个人叫 Brian
    // 第 4 个人叫 Jack
    
  • 单侧区间

    swift">for name in names[2...] {
        print(name)
    }
    // Brian
    // Jack
    
    for name in names[...2] {
        print(name)
    }
    // Anna
    // Alex
    // Brian
    
    for name in names[..<2] {
        print(name)
    }
    // Anna
    // Alex
    
  • swift中运算符的使用类似python中的运算符使用,字符串可以+

  • 元祖拆解方式也类似

  • 负数前面直接添加 - 号即可

  • 元组长度相同、元素相同才可以比较,且是逐值比较的,直到发现有两个值不等时停止,例如:

    swift">(1, "zebra") < (2, "apple")   // true,因为 1 小于 2
    (3, "apple") < (3, "bird")    // true,因为 3 等于 3,但是 apple 小于 bird
    (4, "dog") == (4, "dog")      // true,因为 4 等于 4,dog 等于 dog
    

    Swift 标准库只能比较七个以内元素的元组比较函数

2.3 逻辑运算符

  • 逻辑非:!
  • 逻辑或:||
  • 逻辑与:&&

swift 逻辑操作符是左结合,意味着多元逻辑运算复合表达式中,计算顺序从左到右;此外也可以使用括号来划定优先级

本节完。


http://www.niftyadmin.cn/n/10820.html

相关文章

贝赛尔曲线

<template><svg width"400" height"400" class"BG" mousemove"mousemove"><!-- 这样拼字符串&#xff0c;少些点加号&#xff0c;方便改一些 --><path class"Line":d"M${StartPoint[0]} ${StartP…

【Linux】初识系统调用进程状态

文章目录1. 什么是系统调用1.1 通过系统调用获取进程标示符通过其他方式查看PIDTopPS使用PID1.2 通过系统调用创建进程-fork初识2. 进程状态看看Linux内核源代码怎么定义查看状态Z(zombie)-僵尸进程僵尸进程危害孤儿进程1. 什么是系统调用 在linux中&#xff0c;系统调用是指操…

【机器学习技巧】机器学习模型的两种存储方式:pickle与joblib模块

目录1. 构建待存储的示例模型--鸢尾花数据集2. 模型存储2.1 使用sklearn中的joblib存储2.2 使用python自带的pickle模块存储模型本文主要介绍了两种机器学习模型的存储与读取方式&#xff0c;方便我们将训练好的模型直接存储起来&#xff0c;方便下次直接使用该模型进行预测。1…

【JAVA程序设计】基于SSM的电影院在线购票系统-沙箱支付

基于SSM的电影院在线购票系统-沙箱支付项目获取项目简介开发环境项目技术功能结构运行截图项目获取 获取方式&#xff08;点击下载&#xff09;&#xff1a;是云猿实战 项目经过多人测试运行&#xff0c;可以确保100%成功运行。 项目简介 本项目是基于SSM的影院购票系统,本项…

如何使用CompletableFuture

目录 一、CompletableFuture是什么 二、CompletableFuture用法 2.1、创建CompletableFuture 2.1.1、直接创建 2.1.2、创建一个使用指定数据作为结果的已结束的CompletableFuture 2.1.3、通过执行异步任务获取CompletableFuture 2.2、获取任务结果 2.3、消费结果 2.3.1、…

LeetCode-878. 第 N 个神奇数字【数学,二分查找,找规律】

LeetCode-878. 第 N 个神奇数字【数学&#xff0c;二分查找&#xff0c;找规律】 题目描述&#xff1a;解题思路一&#xff1a;二分答案容斥原理。给定一个上下界&#xff0c;然后依次增大下界或者减小上界&#xff0c;直到只剩一个答案。容斥原理是&#xff0c;加上两个集合&a…

数据治理----集中、分布的各种模式傻傻分不清楚

1、数据治理运营模型类型&#xff1a;集中式治理&#xff1b;分布式治理&#xff1b;联邦式治理。在集中式管理模式中&#xff0c;数据治 理组织监督所有业务领域中的活动。在分布式管理模式中&#xff0c;每个业务单元中采用相同的数据治理 运营模型和标准。在联邦式管理模式中…

本地搭建K8S开发环境

有时候我们需要在本地搭建一个开发测试环境&#xff0c;这个环境可能会包括很多不同的软件组件&#xff0c;例如Kafka, PG, Redis之类的。利用Kubernetes我们可以很方便的搭建一个环境&#xff0c;并把这些需要的组件部署到环境上面去。这里我选择在本地安装minikube&#xff0…