Swift开发基础01-语法
Hello World
1 | print( "Hello World" ) |
不用编写main函数,Swift将全局范围内的首句可执行代码作为程序入口
一句代码尾部可以省略分号(;),多句代码写到同一行时必须用分号(;)隔开
用var定义变量,let定义常量,编译器能自动推断出变量\常量的类型
Playground可以快速预览代码效果,是学习语法的好帮手
Command + Shift + Enter:运行整个Playground
Shift + Enter:运行截止到某一行代码
Playground
1、使用
1 2 3 4 | let view = UIView() view.frame = CGRect(x: 0, y: 0, width: 50, height: 50) view.backgroundColor = UIColor.blue PlaygroundPage.current.liveView = view |
同理这里的view可以用其他对象替换,例如image viewController 等等
2、多page
注释
1 2 3 4 5 6 7 8 9 10 11 | // 单行注释 /* 多行注释 */ /* abc /* 多行嵌套注释 */ def */ |
1、markup
Playground的注释支持markup语法(与markdown相似)
1 | //:开始markup |
开启markup渲染效果:Editor -> Show Rendered Markup
注意:Markup只在Playground中有效
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | /*: # 一级标题 ## 无序列表 - First Item - Secound Item ## 有序列表 1、First Item 2、Secound Item ## 笔记 > This is a note ## 图片  ## 链接 * [链接地址](https://XXXX.com) ## 粗体/斜体 这是**Bold**,这是*斜体* */ |
常量
只能赋值一次
它的值不要求在编译时期确定,但在使用之前必须赋值一次
1 2 3 4 5 6 7 8 9 | let age = 10 let age2: Int age2 = 20 func getAge() -> Int { return 30 } let age3 = getAge() |
常量和变量在初始化之前,都不能使用
标识符
标识符(比如常量名、变量名、函数名) 几乎可以使用任何字符
标识符不能以数字开头,不能包含空白字符、制表符、箭头灯特殊字符
常见的数据类型
常见数据类型 |
|||||||||
|
整数类型:Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt64n 在32bit平台,Int等价于Int32,Int等价于Int64
整数的最值:UInt8.max、Int16.min
一般情况下,都是直接使用Int即可
浮点类型:Float,32位,精度只有6位;Double,64位,精度至少15位
字面量
1 2 3 4 5 6 7 8 9 10 | let bool = true // v布尔 let string = "chg" // 字符串 let character: Character = "🐶" // 字符(可存储ASCII字符、Unicode字符) let intDecimal = 17 // 十进制 let intBinary = 0b10001 // 二进制 let intOctal = 0o21 // 八进制 let intHexadecimal = 0x11 // 十六进制 let aoubleDecimal = 125.0 // 浮点数 let array = [1,3,5,7,9] let dictionary = [ "age" :18, "height" :173 , "weight" :130] |
类型转换
元组
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!