当前位置: 首页 > news >正文

Swift 基础语法 - 数据类型

常量

  • 只能赋值一次
  • 它的值不要求在编译时期确定,但使用之前必须赋值一次
let num1 = 10

let num2: Int
num2 = 20

func getNum() -> Int{
    return 30
}

let num3 = getNum()

在这里插入图片描述
下面代码是错误的(给不明确类型赋值会报错
在这里插入图片描述

  • 常量、变量在初始化前,都不能使用
    在这里插入图片描述

标识符

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

🆚()

let 🐂 = "牛"

var 🐷 = "猪头"

在这里插入图片描述
在这里插入图片描述

常见数据类型

Swift 中是没有基本数据类型概念的,只有值类型与引用类型。

常见数据类型
值类型(value type)枚举(enumOptional
结构体(structBool、Int、Float、Double、Character
String、Array、Dictionary、Set
引用类型(reference type)类(class

在这里插入图片描述

字面量

  • 布尔
//布尔
let bool1 = true //取反是false
let bool2 = false
  • 字符串
//字符串
let string = "CSDN"
  • 字符(必须声明是Character类型,默认是字符串)
//字符(可存储ASCII字符、Unicode字符)
let character :Character = "🦆"
  • 整数
//整数
let intDecimal = 16 // 十进制
let intBinary = 0b10000 // 二进制
let intOctal = 0o20 // 八进制
let intHexadecimal = 0x10 // 十六进制

在这里插入图片描述

  • 浮点数
//浮点数
let doubleDecimal = 314.15 // 十进制,等价于 3.1415e2
let doubleDecimal1 = 3.1415e2
let doubleHexadecimal1 = 0xFp2 // 十六进制,意味着15x2^2,相当于十进制的 60.0
let doubleHexadecimal2 = 0xFp-2 // 十六进制,意味着15x2^-2,相当于十进制的3.75
//以下都是表示 3.1875
//十进制:3.1875、0.31875e1
//十六进制:0x3.3p0

在这里插入图片描述

整数和浮点数可以添加额外的零或者添加下划线来增强可读性
100_0000、1_000_000.000_0001、000789.245
在这里插入图片描述

  • 数组
let array = [1,2,3,4,5,6,8,9]
  • 字典
let dictionary = ["width" : 30, "height" : 40, "depth": 50]

类型转换

  • 整数转换
//整数转换
let int1: UInt16 = 1_000
let int2: UInt8 = 2
let int3 = int1 + UInt16(int2)
  • 整数、浮点数转换
//整数、浮点数转换
let int = 4
let double = 3.14159
let num = Double(int) + double
let intNum = Int(num)

字面量可以直接相加,因为数字字面量本身没有明确的类型

let rs = 3 + 1.14159

元组(Tuple)

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

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

let (justTheStatusCode, _) = http404Error
print("The status code is \(justTheStatusCode)")

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

在这里插入图片描述

相关文章:

  • js单行代码------对象
  • T1061 求整数的和与均值(信息学一本通C++)
  • Java注解-最通俗易懂的讲解
  • 特殊类设计
  • 【STL***deque容器二】
  • 多测师肖sir_高级讲师_第2个月第8讲解类
  • 各编程语言 + aardio 相互调用示例
  • SpringCloud概述
  • element的Form表单就应该这样用
  • Linux基础组件之死锁检测
  • TypeScript——函数(函数定义类型、可选参数和默认参数、剩余参数、函数类型变量、使用接口封装函数变量类型)
  • T1056点和正方形的关系 (信息学一本通C++)
  • 【Selenium】一网打尽 小窗口滑动 全窗口滑动
  • 大数据必学Java基础(六十三):COW并发容器讲解
  • AutoCAD2014与致命的错误与独显直连
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 【css3】浏览器内核及其兼容性
  • 【翻译】babel对TC39装饰器草案的实现
  • 【个人向】《HTTP图解》阅后小结
  • Android交互
  • Apache Pulsar 2.1 重磅发布
  • Cookie 在前端中的实践
  • JavaScript-Array类型
  • Java小白进阶笔记(3)-初级面向对象
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • React as a UI Runtime(五、列表)
  • React Native移动开发实战-3-实现页面间的数据传递
  • React16时代,该用什么姿势写 React ?
  • vue脚手架vue-cli
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • Zsh 开发指南(第十四篇 文件读写)
  • 程序员最讨厌的9句话,你可有补充?
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 对象引论
  • 分享几个不错的工具
  • 记一次删除Git记录中的大文件的过程
  • 批量截取pdf文件
  • 入口文件开始,分析Vue源码实现
  • 数组大概知多少
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 我这样减少了26.5M Java内存!
  • 在weex里面使用chart图表
  • 智能网联汽车信息安全
  • 阿里云ACE认证之理解CDN技术
  • #pragam once 和 #ifndef 预编译头
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (06)Hive——正则表达式
  • (2)(2.10) LTM telemetry
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (C++17) optional的使用
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (poj1.2.1)1970(筛选法模拟)
  • (pojstep1.3.1)1017(构造法模拟)
  • (zt)最盛行的警世狂言(爆笑)