Swift学习入门,新手小白看过来

news2024/9/20 16:25:29

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD
如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。
😊 座右铭:不想当开发的测试,不是一个好测试✌️。
如果感觉博主的文章还不错的话,还请点赞、收藏哦!👍

文章目录

  • 前言
  • Swift 简单介绍
  • Swift 数据类型
  • 类型别名
  • 声明变量
  • 声明常量
  • Swift 可选(Optionals)类型
  • Swift 运算符

前言

最近在学习 Swift,整理了一些内容,在此记录,有问题的话欢迎小伙伴进行指正。

Swift 简单介绍

Swift是一种支持多编程范式和编译式的开源编程语言,Swift结合了C和Objective-C的优点并且不受C兼容性的限制。
那么问题来了,什么是多编程范式?
多编程范式是指在软件开发中使用多个不同的编程范式或编程风格的方法。编程范式是一种对问题求解和程序设计的方法论,它提供了一组规则和原则来组织和表达计算机程序。
常见的编程范式包括:

  • 命令式编程范式(Imperative Programming Paradigm):以指令的顺序执行为基础,通过修改程序状态来实现计算。常见的命令式编程语言包括C、Java和Python。
  • 函数式编程范式(Functional Programming Paradigm):将计算视为函数之间的转换,强调无副作用的函数和不可变数据。常见的函数式编程语言包括Haskell、Lisp和Clojure。
  • 面向对象编程范式(Object-Oriented Programming Paradigm):以对象的概念为基础,通过定义类、对象和它们的关系来组织代码。常见的面向对象编程语言包括Java、C++和Python。
  • 声明式编程范式(Declarative Programming Paradigm):描述问题的逻辑和约束条件,而不指定如何解决问题。常见的声明式编程范式包括逻辑编程和数据库查询语言等。
  • 并发编程范式(Concurrent Programming Paradigm):处理并发和并行计算的编程范式,涉及多线程、协程或消息传递等技术。 领域特定编程范式(Domain-Specific Programming Paradigm):针对特定领域的问题建立的编程范式,例如数据分析、机器学习和图形处理等。

文件后缀为名.swift,

命名规范和其他编程语言一样

  • 区分大小写
  • 不能以数字开头
  • 标识符中其他字符可以是下划线、字母、数字

注意:

如果一定要使用关键字作为标识符,可以在关键字前后添加重音符号(```).
let class = “Jenny”
另外在Swift中,对空格有一定的要求,比如下面举的例子

//正确写法
var name = "Jenny";var name="Jenny"
//错误写法
var name= "Jenny";var name ="Jenny" // 会报错'=' must have consistent whitespace on both sides
// 运算符不能直接跟在变量或者常量的后面
let a = 1 + 5 //正确写法——推荐写法
let a = 1+5 //正确

备注:所以在编程过程中尽量符号前后都要有空格,这样比较美观,而且其他编程语言也不会报错。在Swift中使用print()函数打印输出,它没有println()函数,

Swift 数据类型

和 java 有点类似:Int、Float、Double、String、Bool、Character
字符:Character,指的是单个字母,例如“C”

布尔值字面量有三个值:true(真)、false(假)、nil 表示没有值

类型别名

类型别名对当前的类型定义了另一个名字,类型别名通过使用 typealias 关键字来定义。例如:

定义了 Int 的类型别名为 Demotypealias Demo = Int
var test:Demo = 12  // 这种命名方式和Kotlin一样,在定义变量是直接定义数据类型
// 如果我们想让其不换行输出,只需要将最后一个参数赋值为空字符串即可,
// 在字符串中可以使用括号与反斜线来插入变量
print("\(test)的值为:\(test)") // "12的值为:12\n"
print("\(test)的值为:\(test)",terminator: "") //"12的值为:12"

声明变量

使用var关键字定义一个变量,和kotlin有点类似

var a = "hello"
var b:Float
b = 3.14159

声明常量

使用let 关键字声明 ,常量的值不可改变,常量需要以字母或下划线开始。

 
let a = 2
//类型标注
let c:Int = 2

Swift 可选(Optionals)类型

用于处理值缺失的情况,可选表示"那儿有一个值,并且它等于 x “或者"那儿没有值”。

// 两种声明方式均可
var optionalInteger: Int?   // 在类型和 ?之间没有空格。
var optionalInteger: Optional<Int>

var optionalInteger: Int? // 当你声明一个可选变量或者可选属性的时候没有提供初始值,它的值会默认为 nil。
optionalInteger = 20
optionalInteger! //20
// 如果一个可选类型的实例包含一个值,你可以用后缀操作符 !来访问这个值
// 注意:使用!来获取一个不存在的可选值会导致运行时错误。使用!来强制解析值之前,一定要确定可选包含一个非nil的值。

/* 强制解析 */
var optionalInteger: Int? 
optionalInteger = 42
optionalInteger!

/* 自动解析 */
// 在声明可选变量时使用感叹号(!)替换问号(?)。这样可选变量在使用时就不需要再加一个感叹号(!)
var a: Int!
a = 18
print(a)

二进制前缀0b、八进制前缀0o、十六进制前缀0x,

Swift 运算符

加减乘除取余、逻辑运算符

逻辑与:&&:||:!

区间运算符

  • 闭区间运算符 :a…b 例如:1…5 区间值为 1, 2, 3, 4 和 5
  • 半开区间运算符 : a…<b 例如:1…<5 区间值为 1, 2, 3, 和 4
for index in 1...5 {
    print("\(index) * 5 = \(index * 5)")
}

for index in 1..<5 {
    print("\(index) * 5 = \(index * 5)")
}

三目运算符:condition ? X : Y

运算符优先级:先算术、后移位、最后位运算、逻辑运算在最后

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1957308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

零代码拖拽,轻松搞定GIS场景编辑

在三维GIS领域&#xff0c;编辑场景和处理影像数据通常是一个复杂且费时的过程&#xff0c;但现在有了山海鲸可视化&#xff0c;这一切都变得简单有趣。这款免费可视化工具为您提供了零代码拖拽式编辑的体验&#xff0c;让您无需编程知识就能轻松创建和优化GIS场景。通过直观的…

STM32——GPIO(点亮LEDLED闪烁)

一、什么是GPIO&#xff1f; GPIO&#xff08;通用输入输出接口&#xff09;&#xff1a; 1.GPIO 功能概述 GPIO 是通用输入/输出&#xff08;General Purpose I/O&#xff09;的简称&#xff0c;既能当输入口使用&#xff0c;又能当输出口使用。端口&#xff0c;就是元器件…

记一次因为在html两个地方引入vue.js导致组件注入失败的问题

这个问题我遇到两次了&#xff0c;是在恼火&#xff0c;不对&#xff0c;三次了&#xff0c;我如果不做这个笔记&#xff0c;我确定我还会遇到第三次。 尾部这个去掉就行 因为头部有了 遇到这种bu g好恼火&#xff0c;解决了又怎么样呢&#xff1f;重蹈覆辙的滋味不好受

Python技能达到这个水平,高薪就业不是梦

一&#xff0c;高薪就业的必备基础 要达到高薪就业的水平&#xff0c;Python开发者通常需要具备以下几方面的技能和经验&#xff1a; 如需Python籽料直接戳&#xff1a; 2024年最新python教程全套&#xff0c;学完即可进大厂&#xff01;&#xff08;附全套视频 下载&#xf…

#IO进程 笔记一

标准IO 文件IO 文件属性获取 目录操作 库 进程: process 线程(thread)、同步、互斥、条件变量 进程间通信: 6种(一共7种) 无名管道(pipe)、有名管道(fifo)、信号(sginal)、信号灯集(semphore)、 共享内存(shared memory)、消息队列(message queue) 标准IO 1. 概念 标准IO&…

详细分析示波器导至U盘的数据(Excel表格)示波器具体名称分析

一般由示波器导入U盘的csv文件&#xff08;即Excel表格数据&#xff09;的图如下图所示&#xff1a; 下面小编就对上表格的各个数据表示进行逐一解释 1、Memory Length&#xff1a;4000 在示波器&#xff08;Oscilloscope&#xff09;中&#xff0c;“Memory Length”&#x…

【算法】代码随想录之字符串(更新中)

文章目录 前言 一、反转字符串&#xff08;LeetCode--344&#xff09; 二、反转字符串II&#xff08;LeetCode--541&#xff09; 三、反转字符串中的单词&#xff08;LeetCode--151&#xff09; 前言 跟随代码随想录&#xff0c;学习字符串相关的算法题目&#xff0c;记录…

20240730 每日AI必读资讯

&#x1f3ac;燃爆&#xff01;奥运8分钟AI影片火了&#xff0c;巴赫主席&#xff1a;感谢中国黑科技 - 短片名为《永不失色的她》&#xff08;To the Greatness of HER&#xff09;&#xff0c;由阿里巴巴和国际奥委会联合推出。 - 百年奥运史上伟大女性的影响故事在此被浓缩…

VBA技术资料MF183:将图片导入word并调整大小

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

人生最大的毛病,就是一个“ 傲 ”字

99天 傲慢之害&#xff0c;人要勤勉恭敬 51.27 先生说&#xff1a;人生最大的毛病&#xff0c;就是一个“ 傲 ”字。 当今人们的问题&#xff0c;主要就是“ 傲 ”。千罪百恶&#xff0c;都从傲而来。一个人要是傲&#xff0c;就会自高自大、自以为是&#xff0c;不肯屈于人下…

cf960(div2)

A. Submission Bait&#xff08;博弈&#xff09; 题意&#xff1a;爱丽丝和鲍勃在大小为n的数组a中进行游戏&#xff0c;他们轮流进行运算&#xff0c;爱丽丝先开始&#xff0c;不能运算的一方输&#xff0c;一开始mx0&#xff0c;每次操作&#xff0c;玩家可以选择一个牵引i…

pikachu靶场之目录遍历、敏感信息泄露

一、目录遍历 漏洞概述 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量&#xff0c;从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时&#xff0c;便会将请求的这个文件的值(比如文件名称)传递到后台&#xff0c;后台再执行其对应的文件。 在这个过…

汽车辐射大?技术来救它:整车辐射抗扰发射天线仿真建模及性能预测

摘要 针对车辆电磁辐射抗扰度测试条件要求高、预测难度大的问题&#xff0c;通过仿真软件建立电磁抗扰度测试发射天线&#xff08;简称抗扰发射天线&#xff09;模型及无车情况下的电磁抗扰试验场强环境&#xff0c;为整车电磁辐射抗扰性能的预测搭建了一个仿真平台。 验证试验…

第5章Excel数据分析之数据透视表遇见SQL

文章目录 第5章 数据透视表遇见SQL5-1如何在查询中使用SQL语句&#xff1f;5-2SQL查询语句&#xff08;数据透视表的辅助列&#xff09;5-3SQL常用运算符&#xff08;案例&#xff1a;添加分析维度&#xff09;5-4SQL筛选语句&#xff08;数据透视表数据源的过滤&#xff09;5-…

【单片机毕业设计选题24085】-基于STM32的心电采集系统设计

系统功能: 系统上电后&#xff0c;OLED显示“欢迎使用心电采集系统请稍后”两秒后进入正常页面显示。 第一行显示心率和血氧值。 第二行显示心率设定高值。 第三行显示心率设定低值。 第四行显示心率状态&#xff0c;"Rate OK", "Rate High", "R…

C++中的依赖注入

目录 1.概述 2.构造函数注入 3.setter方法注入 4.接口注入 5.依赖注入框架 6.依赖注入容器 7.依赖注入框架的工作原理 8.依赖注入的优势 9.总结 1.概述 依赖注入是一种设计模式&#xff0c;它允许我们在不直接创建对象的情况下为对象提供其依赖项&#xff1b;它通过将…

学习c语言第十四天(调试+练习)

一、调试 所有发生的事情都一定有迹可循&#xff0c;如果问心无愧&#xff0c;就不需要掩盖也就没有迹象了&#xff0c;如果问心有愧 就必然需要掩盖&#xff0c;那就一定会有迹象&#xff0c;迹象越多就越容易顺藤而上&#xff0c;这就是推理的途径。 顺着这条途径顺流而下就…

广东省某地区智慧水务平台全面升级启航(案例解析)

项目背景 随着物联网、人工智能、大数据、数字孪生等技术的应用&#xff0c;对精准调控、漏损控制、可视化管理、节能降耗、高效指挥等方面的要求越来越高。鉴于此&#xff0c;广东某地区的现有智慧水务平台已无法满足日益增长的智能化管理需求&#xff0c;亟待进行智慧化升级以…

工程计算与分析课程报告-Matlab

如下图所示的单自由度系统: m20kg, c30 Ns/m, and k3000 N/m. 1、应用数学、机械等理论知识推导出以下系统的数学模型&#xff1a; 其中&#xff1a; x坐标如上图所示&#xff0c;取其稳态点为零点。 M为重物质量 K为弹簧弹性系数 C为阻尼系数 F(t)为施加在重物上的外激励…

应用层协议HTTP

应用层协议HTTP 注1. HTTP协议2. 认识URL3. HTTP 协议请求与响应格式3.1.快速获取HTTP请求3.2 快速解析HTTP请求3.3 细致了解HTTP请求与响应 4. 完善Http.hpp代码&#xff0c;实现http协议4.1 http请求4.2再谈URL4.3构建http应答4.4 Content-Type属性 5.HTTP请求/响应属性5.1HT…