Swift - 基础语法

news2025/1/16 11:06:24

文章目录

  • Swift - 基础语法
    • 1. 常量
      • 1.1 只能赋值1次
      • 1.2 它的值不要求在编译时期确定,但使用之前必须赋值1次
      • 1.3 常量、变量在初始化之前,都不能使用
    • 2. 标识符
    • 3. 常用数据类型
    • 4. 字面量
      • 4.1 布尔
      • 4.2 字符串
      • 4.3 整数
      • 4.4 浮点数
      • 4.5 数组
      • 4.6 字典
    • 5. 类型转换
      • 5.1 整数转换
      • 5.2 整数、浮点数转换
      • 5.3 字面量
    • 6. 元组

Swift - 基础语法

let:常量,var:变量

1. 常量

  • 只能赋值1次
  • 它的值不要求在编译时期确定,但使用之前必须赋值1次
  • 常量、变量在初始化之前,都不能使用

报错 - 二次赋值

1.1 只能赋值1次

声明常量:

let age = 10

或者

let age : Int
age = 1

如果把类型删掉,会报错

报错:二次赋值

使用var,就不会报错

1.2 它的值不要求在编译时期确定,但使用之前必须赋值1次

num是变量,运行时是会变的,但是我们可以将它赋值给常量age。注:很多编程语言不能这样

保证使用之前赋值1次就行

编译时或者运行时赋值都行

如下,常量age在运行时调用getAge方法赋值

1.3 常量、变量在初始化之前,都不能使用

2. 标识符

  • 标识符(比如常量名变量名函数名)几乎可以使用任何字符
  • 标识符不能数字开头不能包含空白字符制表符箭头等特殊字符
func 🐂🍺() {
    print("666")
}
🐂🍺()

let 👽 = "ET"
var 🥛 = "milk"

3. 常用数据类型

Swift中的数据类型分为值类型引用类型

  • 整数类型:Int8Int16Int32Int64UInt8UInt16UInt32UInt64
  • 32bit平台,Int等价于Int32;在64bit平台, Int等价于Int64
  • 整数的最值:UInt8.maxInt16.min
  • 一般情况下,都是直接使用Int即可
  • 浮点类型:Float,32位,精度只有6位;Double,64位,精度至少15位

如果定义Double类型,直接写一个小数就行。如果要定义Float类型,需要写清楚是Float

let letFloat: Float = 30.0
let letDouble = 30.0

4. 字面量

4.1 布尔

let bool = true

4.2 字符串

let string = "哈哈哈"

4.3 整数

let intDecimal = 17  // 十进制
let intBinary = 0b10001  // 二进制
let intOctal = 0o21  //八进制
let intHexadecimal = 0x11 //时间六进制

4.4 浮点数

let doubleDecimal = 125.0  // 十进制,等价于1.25e2(1.25*10的2次方)。0.0125等价于1.25e-2
let doubleHexadecimall = 0xFp2 // 十六进制,意味着15x2^2,相当于十进制的60.0
let doubleHexadecimal2 = 0xFp-2 // 十六进制,意味着15x2^-2,相当于十进制的3.75
// 以下都是表示12.1875
// 十进制:12.1875、1.21875e1
// 十六进制:0xC.3p0

4.5 数组

let array = [1, 3, 5, 7, 9]

4.6 字典

let dictionary = ["age" : 18, "height" : 168, "weight" : 120]

整数和浮点数可以添加额外的零或者添加下划线来增强可读性
p100_00001_000_000.000_000_1000123.456

5. 类型转换

5.1 整数转换

// 整数转换
let int1: UInt16 = 2_000
let int2: UInt8 = 1
let int3 = int1 + UInt16(int2)

5.2 整数、浮点数转换

//整数、浮点数转换
let int = 3
let double = 0.24523
let pi = Double(int) + double
let intPi = Int(pi)

5.3 字面量

// 字面量可以直接相加,因为数字字面量本身没有明确的类型
let result = 3 + 0.24523

6. 元组

/*
 元组
 */
let http404Error = (404, "Not Found")
print("The status code is \(http404Error.0)")

let (statusCode, statusMessage) = http404Error
print("The status code is \(statusCode)")

let (justTheStatusCode, _) = http404Error

let http200Status = (statusCode:200, description: "OK")
print("The status code is \(http200Status.statusCode)")

@oubijiexi

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

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

相关文章

【C++】string类的增删改查模拟实现(图例超详细解析!!!)

目录 一、前言 二、string类的模拟实现 ✨前情提要 ✨Member functions —— 成员函数 ⚡构造函数 ⚡拷贝构造函数 ⚡赋值运算符重载 ⚡析构函数 ✨Element access —— 元素访问 ⚡operator[ ] ⚡Iterator —— 迭代器 ✨Capacity —— 容量 ⚡size ⚡capacity ⚡clea…

记录一个Maxwell采集MySQL数据时报安全证书时间不通过的问题

【背景描述】 我的zk,kafka和Maxwell都正常启动了 此时我需要用Maxwell将MySQL的一张表user_info将其全量同步到kafka当中时发生报错,命令如下: [atguiguhadoop102 datas]$ /opt/module/maxwell/bin/maxwell-bootstrap --database gmall --…

Mongodb语法使用说明(含详细示例)

点击下载《Mongodb语法使用说明(含详细示例)》 1. 前言 MongoDB是一款高性能、开源、面向文档的NoSQL数据库,它使用类似JSON的BSON格式存储数据,提供了灵活的数据模型和强大的查询功能。本文将详细介绍MongoDB数据库的基本增删改…

机器学习-期末复习

本文的内容按照作者的课程考试要求书写,仅供复习参考。🌷🌷🌷欢迎大家指正! 机器学习是一种人工智能(AI)的分支领域,它致力于开发能够通过数据学习和改进的算法和模型。简而言之&…

深入学习Linux中的“文件系统与日志分析”

目录 1.文件系统的组成 1.1inode和block 1.2inode的内容 1.3inode的号码 ​1.4文件存储小结 ​1.5inode大小 1.6inode的特殊作用 2. 链接文件 3.文件恢复 3.1EXT类型文件恢复 3.2磁盘有空间,但是仍然无法写入新文件 3.3恢复XFS类型的文件 3.3.1xfsdump…

面试:JVM内存结构

一、Java代码的运行步骤 一段Java代码先会被反编译为Java字节码,当执行java命令时,JVM虚拟机会被创建出来,并会创建一个main主线程来执行主方法。 二、JVM的内存结构有哪些? 1、方法区:(线程共享&#xff…

实验五 Spark SQL编程初级实践

Spark SQL编程初级实践 Spark SQL基本操作 将下列JSON格式数据复制到Linux系统中,并保存命名为employee.json。 { "id":1 , "name":" Ella" , "age":36 } { "id":2, "name":"Bob","a…

婴儿专用洗衣机有必要吗?四大宝藏婴儿洗衣机测评对比

对于有了宝宝的家庭来说,洗衣成为了一项重要的家务事。大家都知道,宝宝的皮肤比较娇嫩,容易受到各种细菌、病毒的侵扰。所以,宝宝的衣物应该与大人的分开洗。婴儿洗衣机作为一种专门为婴幼儿家庭设计的洗衣机,其具有除…

Ubuntu 20.04.6下载、安装

一、下载 下载地址:https://cn.ubuntu.com/download 下载版本:ubuntu-20.04.6-desktop-amd64.iso 二、安装 参考博客: https://blog.csdn.net/lhl_blog/article/details/123406322 https://www.cnblogs.com/fieldtianye/p/17879840.html…

根据当年节假日和非工作时间计算请假时间-获取每个月的节假日,计算每个月的工作日时间进度,节假日每年更新

根据需求请假时间要排除法定节假日和非工作时间 1.获取当年的节假日 节假日是每年更新的,没有固定接口,需要手动录入 个人根据官方的节假日整理了当年的所有节假日,可以根据个人需求进行修改 // 获取每个月的节假日,如果当月没…

【Qt 学习笔记】Qt常用控件 | 显示类控件 | LCD Number的使用及说明

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt常用控件 | 显示类控件 | LCD Number的使用及说明 文章编号&#xf…

ELK技术介绍:背景、功能及应用场景全面解析

一、ELK概述 ELK是由Elasticsearch、Logstash和Kibana三个开源软件组成的日志管理解决方案,这一组合在近年来得到了广泛的关注和应用。ELK的出现,源于大数据和云计算技术的快速发展,以及对高效日志管理的迫切需求。 随着企业信息化程度…

3dmax云渲染100插件怎么安装?渲染100邀请码1a12

3dmax云渲染插件能在设计师完成参数设置后, 通过点击插件的方式上传到云渲染平台进行渲染,那么3dmax云渲染插件怎么安装呢?以渲染100为例,我们来看下。 下载工具:渲染100客户端 1、设计师在渲染100官网(http://www.x…

淘宝扭蛋机小程序开发:开启购物新纪元,探索乐趣无穷的互动体验

随着科技的飞速发展,人们的购物方式也在不断革新。淘宝扭蛋机小程序应运而生,它巧妙地结合了线上购物与线下娱乐,为消费者带来了一种前所未有的互动体验。今天,就让我们一起走进淘宝扭蛋机小程序的开发世界,探索其背后…

DHCP原理和配置

1、DHCP原理 (1)什么是DHCP DHCP(Dynamic HostConfiguration Protocol,动态主机配置协议):给网络内的客户机自动分配IP地址由internet工作任务小组设计开发口专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议DHCP采用的是UDP作为传输…

【数字图像处理笔记】Matlab实现离散傅立叶变换 (二)

💌 所属专栏:【数字图像处理笔记】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &#x…

离线语音模块初步学习——LSYT201B(深圳雷龙发展)

一 、产品简介 首先简单介绍下该离线语音模块,官方给出的介绍是:YT2228 是根据智能语音交互市场需求及思必驰算法的发展方向定义开发的 “芯片算法”人工智能人机语音交互解决方案,具有高性能、低功耗等特点。该芯片通过软硬融合的方法&…

流量代理第一弹:入门使用

定义 “流量代理是一种网络通信技术,它充当网络通信的中间人,将流量从一个地方传递到另一个地方。通常用于实现网络隧道、网络加速、访问控制和隐私保护等功能。“ 上面是来自chatGPT的回答。从这个回答中,我们不难看出,流量代理…

专利视角下的量子竞赛:《2024全球专利格局白皮书》

2024年1月,欧洲量子产业联盟(QuIC)发布了题为《全球量子技术专利格局描述》的综合白皮书。 该文件以透明的视角展示了当今的知识产权格局,包括知识产权持有人的地理分布。该文件由 QuIC 知识产权(IP)与贸易…

【学习笔记】Python 使用 matplotlib 画图

文章目录 安装中文显示折线图、点线图柱状图、堆积柱状图坐标轴断点参考资料 本文将介绍如何使用 Python 的 matplotlib 库画图,记录一些常用的画图 demo 代码 安装 # 建议先切换到虚拟环境中 pip install matplotlib中文显示 新版的 matplotlib 已经支持字体回退…