Swift - 基础语法

文章目录

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

相关推荐
光影少年16 分钟前
开发RN项目时,如何调试iOS真机、Android真机?常见调试问题排查?
android·前端·react native·react.js·ios
疯狂的程序猴18 小时前
Flutter应用代码混淆完整指南:Android与iOS平台配置详解
后端·ios
SY.ZHOU19 小时前
移动端架构体系(五):终篇总结
flutter·ios·系统架构·安卓·鸿蒙
Digitally1 天前
如何不用 iTunes 将 iPhone 备份到移动硬盘?
ios·iphone
sysinside1 天前
Cisco Catalyst 9000 IOS XE 26.1.1 GA - 思科 Catalyst 9000 交换产品系列 IOS XE 系统软件
ios·cisco
低保和光头哪个先来1 天前
解决 ios 使用 video 全屏未铺满页面问题
前端·javascript·vue.js·ios·前端框架
报错小能手1 天前
SwiftUI 框架 认识 SwiftUI 视图结构 + 布局
ui·ios·swift
2501_915921431 天前
HTTP和HTTPS协议全面解析:技术原理与安全应用
安全·http·ios·小程序·https·uni-app·iphone
悟空爬虫-彪哥1 天前
VRCFaceTracking安装和iPhone面捕配置教程,有bug
ios·bug·iphone
想个名字想老半天1 天前
uni离线打包实现 ios 支付StoreKit 2,其实没有想象中那么复杂,不需要写原生插件,不需要转 uts
macos·ios·cocoa