Swift - 基础语法

文章目录

  • 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, _) = http404Errorlet http200Status = (statusCode:200, description: "OK")
print("The status code is \(http200Status.statusCode)")

@oubijiexi

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

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

相关文章

【MySQL关系型数据库】基本命令、配置、连接池

目录 MySQL数据库 第一章 1、什么是数据库 2、数据库分类 3、不同数据库的特点 4、MySQL常见命令: 5、MySQL基本语法 第二章 1、MySQL的常见数据类型 1、数值类型 2、字符类型 3、时间日期类型 2、SQL语句分类 1、DDL(数据定义语言&#x…

Qt设置可执行程序图标,并打包发布

一、设置图标 图标png转ico: https://www.toolhelper.cn/Image/ImageToIco设置可执行程序图标 修改可执行程序图标 添加一个rc文件,操作如下,记得后缀改为rc 打开logo.rc文件添加代码IDI_ICON1 ICON DISCARDABLE "logo.ico"在项目pro后缀名的文件中添加代码 RC_…

一套Java语言开发的(药物不良反应智能监测ADR成品源码)B/S架构:用于监测和收集药品在使用过程中发生的不良反应的系统

药品不良反应监测工作弥补了药品上市前研究的局限性,可以最大程度上降低药品不良反应的重复发生,提高合理用药水平,同时也为监管、遴选、调整基本药物提供了数据支持。 所谓“是药三分毒”,药品是把双刃剑,具有两面性…

基于springboot+vue+Mysql的CSGO赛事管理系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

Docker容器部署overleaf

overleaf在线版限制很多,好在开源,准备在本地Docker部署,网上翻了翻,似乎本地部署并非易事,我也尝试了一下,发现直接使用docker-compose拉官方最新镜像部署的确问题很多,不过最终还是完美解决。…

vs2019 - warning LNK4098 : 默认库“msvcrt.lib”与其他库的使用冲突

文章目录 vs2019 - warning LNK4098 : 默认库“msvcrt.lib”与其他库的使用冲突概述笔记实验 - 编译静态库实验 - 编译主工程,包含静态库实验主工程和静态库编译设置不同时的编译报错和警告备注备注 - 判断/Mdd, /MdEND vs2019 - warning LNK4098 : 默认库“msvcrt.…

OpenHarmony实战开发-动画概述

UI(用户界面)中包含开发者与设备进行交互时所看到的各种组件(如时间、壁纸等)。属性作为接口,用于控制组件的行为。例如,开发者可通过位置属性调整组件在屏幕上的位置。 属性值的变化,通常会引…

NetSuite如何迁移Workbook

截止到24.1, Workbook的迁移仍然是个难题。Bundle和Copy To Account都不支持Workbook的迁移,只剩下SDF的办法了。所以,今朝我们就介绍一下SDF迁移Workbook的方法。 1. 迁移准备 基本上,Workbook的迁移涉及4类对象: …

VMWARE安装xpsp3时无法从光盘启动安装显示dhcp转圈圈

VMWARE安装xpsp3时无法从光盘启动安装显示dhcp转圈圈。之前都安装过无数次了。这次被卡住了。 原来是这里原因 不成功是因为启动时连接没打钩。默认是打钩的。不知道怎么的我把勾去掉了。我还跑去设置bios。都没有用。

paddle ocr模型量化实践

参考:https://github.com/PaddlePaddle/PaddleOCR/blob/main/deploy/slim/quantization/README.md https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7.1/doc/doc_ch/FAQ.md 蒸馏 剪枝 量化 参考:https://blog.csdn.net/mddCSDN/article/de…

ptyhon画图显示中文

import matplotlib.pyplot as plt import matplotlib# 设置中文字体 matplotlib.rcParams[font.sans-serif] [SimHei] matplotlib.rcParams[font.family]sans-serifplt.plot([1, 2, 3, 4]) plt.xlabel(这是x轴) plt.ylabel(这是y轴) plt.title(这是标题) plt.show()用这个代码…

记一次线上日志堆栈不打印问题排查(附:高并发系统日志打印方案可收藏)

目录 一.线上的日志堆栈不打印了二.一步一步仔细排查三.最后搞定四.聊一聊线上日志到底应该怎么打印4.1 日志打印的诉求4.2 常见的系统日志上报方案4.2.1 ELK 方案4.2.2 自定义log appender 完成应用日志采集. 4.3 日志常见框架傻傻分不清4.4 日志在高并发系统中需要注意的 tip…

每日一题:最大子数组和

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 示例 1: 输入:nums [-2,1,-3,4,-1,2,1,-5,4] 输出:6…

Docker 的数据管理 端口映射 容器互联 镜像创建

一 Docker 的数据管理 1 管理 Docker 容器中数据主要有两种方式: 数据卷(Data Volumes) 数据卷容器(DataVolumes Containers)。 1.1 数据卷 数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机…

江开2024年春《计算机组成原理 060214》第4次计分作业参考答案

答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 单选题 1某计算机字长32位,其存储容量为4GB&am…

STM32F103 USB 端口的电阻配置

参考ST 官方的STLINK V2 电路图,如下: STLINK V2 的主控是STM32F103CBT6,USB 端口电路在左下角。DP,DM 上串的是0 Ω 电阻,所以103 系列芯片应该是内置了匹配电阻,外置的22Ω 可以去掉了。DP 外接了1.5K 上…

VirtualBox7.0.16的蓝屏大坑与ssh登陆ubuntu虚拟机的办法

背景: 安装了最新版的VirtualBox,装了ubuntu系统,在win10下通过ssh死活无法与ubuntu进行正常登陆控制。 然后开始了踩坑。 问题1:ssh登陆失败,但是主机能ping通ubuntu,反过来也能ping通,网络…

数组和指针经典笔试题讲解

目录 创作不易,如对您有帮助,还望一键三连,谢谢!!! 1.sizeof和strlen的对比 1.1sizeof 1.2strlen 1.3sizeof和strlen对比 2.数组笔试题讲解 数组名的理解 2.1一维数组 2.2字符数组 题目一&#x…

如何在自己的网站页面中嵌入一个【悬浮音乐播放器】

如何嵌入【悬浮音乐播放器】 前言正文1.打开网易云网页版2.设置自己想要的高度和宽度看注意事项 3.选择是否为自动播放4.在header.php文件中</head>标签前插入下面代码5.在heard.php 中<body>标签后边增加一个 div层6.复制播放器代码到\<div>标签的里边7.保存…

sheng的学习笔记-AI-支持向量机(SVM)

目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 目录 什么是向量机 SVM算法原理 SVM基本模型 SVM对偶问题 什么是对偶问题&#xff1a; 为什么使用对偶问题 拉格朗日定理 拉格朗日乘子法 对偶问题算法 非线性SVM算法原理 核函数 常用核函数 软间隔与正则化 软…