Swift基础一

这篇博客详细介绍了Swift的基础知识,包括常量与变量的定义、数据类型、字符串操作、数组、元组、字典、流程控制结构(if、switch)、循环语句、枚举和函数的使用。特别强调了Swift中的特性和与C、OC的不同之处,如自动类型推断、元组的使用以及在流程控制上的严谨性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、在Swift中如需导入头文件,只需要import即可,不需要”“或<>

如:import UIKit

2、在Swift中自定义的文件都不需要导入头文件,可以直接使用
3、在Swift中代码可以不写分号”;”

如:var str = "Hello,World"

进入正题了

一、常量与变量

定义变量的实质就是开辟内存空间

例如:int a = 12

其实就是在栈区和常量区都开辟了内存空间,栈区指针a指向常量区的12

1、let和var
let表示是一个常量,相当于OC中用const修饰

如:let a = 1

var表示变量

如:var b = 1

2、因为Swift中数据类型可以自动推断,是根据等号右边的值判断是什么类型数据然后复制给等号左边的变量(常量),因此,在运算符两边格式要相同,如有空格则都要空格,如若没有,则两边都没有

如:var c = 3,var c=3

3、我们也可以在定义的时候就指定数据类型
格式:var/let 变量名:数据类型 = 初值
如:var d:Int = 4

4、因为C和OC中都是使用ASCII编码方式,所以命名规则为:由数字、字母、下划线组成,其中不能以数字开头,可以使用$
但是在Swift中使用Unicode编码方式,所以几乎所有字符都可以当做变量名

如:var 呵呵 = "��"var �� = "笑了"

二、数据类型

浮点:var float:Float = 4.3
整型:var int:Int = 2

1、强制类型转换:想要转换的类型()

如:var sum:Int = int + Int(float)

2、创建一个字符型变量

如:var char:Character = "A"

3、布尔类型

如:var bool:Bool = true //Swift中用true 或 false

三、字符串

1、创建空字符串

var str_empty = ""var str_empty = String() //构造函数相当于OC初始化方法

2、Swift中使用点语法来调用方法,还有if语句的()不用写也可以

if str_empty.isEmpty {
    print("str_empty是空字符串")
}

3、字符串的拼接,直接用”+”即可

var str1 = "你真"
var str2 = "可爱"
var str3 = str1 + str2

4、计算字符串的长度

print(str3.characters.count)

5、字符串的插值
//Swift没有格式化输出符,所有需要原样输出的都是用”\()”,在()内写上需要输出的内容

print("a=\(a)")

6、大小写的转换

let str4 = "Hello World"
str4.uppercaseString
str4.lowercaseString

四、数组

C:数组只能存放同一种类型的数据
OC:数组里面只能存放对象,但可以是不同类的对象
Swift:只能存放同一种类型的数据(当指明数组类型的时候)

1、Swift中数组可用[]形式表示,也可以用Array()初始化

//不指明数据类型的时候可以不是同一种类型
var array = [1,2,3]
var array1 = [1,2.2,3]
var array2 = [1,"呵呵",3]
//指明数据类型的时候只能是同一种数据
var array3:Array<Int> = [1,2,3]
//还是通过下标取元素
print(array[0])

不可变数组并不仅仅是数组本身的长度不能改变,数组里面的元素也不能改变

例如:let array4:Array<Int> = [1,2,3,4]
array[0] = 5//这样是错的

2、数组常用的方法举例

//添加
array.append(4)
//插入
array.insert(5, atIndex:2)
//删除
array.removeAtIndex(2)
//范围性取值和赋值
array[0...2] = [2,3,3]

3、遍历
for也可不写括号,而且不用写数据类型

for value in array{
    print(value)
}

五、元组

元组就是元素的组合,在Swift中用来修饰一个复杂的变量,类似于C中的结构体

如:var person = ("xiaoBai".25,"America")
print("person的年龄\(person.1)")//通过.0 .1 .2来取值

可以使用元组同时对多个变量进行赋值,如果元组中某个值不想要,可以用”_”来表示相对应的位置

var(name,_,address) = person //这里的"_"表示忽略第二个元素

六、字典

//<>中写的是键值对的数据类型 key:value

var dic:Dictionary<String:String> = ["k1":"v1","k2":"v2"]
取值:print(dic["k1"])
var dic1 = ["k":"123","k1":123]//不指定类型的时候,也是可以不同数据类型的
print(dic1["k1"])

Swift中字典常用的方法举例

//修改:在Swift中可通过[]的形式找到key所对应的值,然后进行修改
dic["k1"] = "value"
//也可以通过方法
dic.updateValue("value", forKey:"k1")

//删除
dic.removeValueForKey("k2")

//获取字典中的keys和values
dic.values //去出来的是Swift里面的数据格式,不能直接使用
//可将其初始化成一个数组,然后再进行使用
Array(dic.values)

七、流程控制

1、if
Swift中不存在非0即为真的说法,if语句必须是严格的Bool类型,这是因为Swift可以自动推断类型,所以不允许模糊的表达式存在

var j = 1
if 1 == j {
    print("j和1相等")
}

2、switch
①必须要有default
②每个case里面至少写一句代码
③每个case自带break

例:

var s = 4
switch s {

    case 1:
        print("1")

    case 2,4: //表示两个case情况一样,用逗号隔开
        print("2")
        fallthrough  //fallthrough关键字表示向下贯穿一个case,写在case的最后,因为遇到fallthrough就会向下贯穿

    case 3:
        print("3")

    default:
        print("default")
}

case还可以是一个范围,而且范围可以交叉,如果两个case交叉,只执行第一种情况
var s = 10
switch s{

    case 1...15:
        print("1...15")
    case 5...20:
        print("5...20")
    default:
        print("default")        
}

case还可以双重判定
switch s {

    case 1...15 where 4 == s:
        print("满足情况")
    default:
        print("default")
}

八、循环语句

white和do-white和C语言区别不大

while s == 4 {
    print("while")
}
//do-whilerepeat
repeat {
    print("do-while")
}while 4 == s

优化冒泡排序

var array = [0,1,3,2,5]
out: for var i = 0; j < 5-1; i++ {//out是for循环的标签,Swift可以加标签来表示这个循环
    var flag = 1 //定义一个标记
    for var j = 0; j < 5-1-i; j++ {
        if array[j] > array[j+1] {
            flag++ //标记变化
            var temp = array[j]
            array[j] = array[j+1]
            array[j+1] = temp
        }
    }
    if 1 == flag {
        //如果条件成立,说明在这次整个大循环中没有发生交换,说明已经排出正确的结果了
        //跳出循环
        //第一种方式
        break out //利用标签,跳出标签为out的循环
        //第二种方式
        //i = 5 //该变i的值结束循环
    }
}

九、枚举

enum Season:String{

    case spring = "春"
    case summer = "夏"
    case autumn = "秋"
    case winter = "冬"
}
想要获取枚举中真实的值,需要用到rawValue方法
例如:print(Season.spring.rawValue)//rowValue取枚举真实的值

十、函数(方法)

函数的语法
func是函数的关键字
func 函数名(参数列表) ->返回值类型{
函数体
}

1、定义一个函数

func sayHi(name:String)->String{

    print("hi\(name)")
    return name+" "+"Hello"
}

2、函数的调用

sayHi("巨乐")

3、在Swift中通常使用元组返回多个值

func funName()->(a:Int,b:Int){
    let A = 1,B = 2
    return (A,B)
}
print(funName().a)
var (age,number) = funName()

4、外部参数名
写完之后还在的参数提示叫做外部参数名
从xcode7开始,只有第一个参数没有外部参数名

func personInfo(name:String,age:Int,address:String)->String {
    return name+"\(age)"+adress
}
personInfo("xiaoA", age: 25, address: "China")

//在原来的内部参数名前面可以再添加一个外部参数名
func personInfo(Name name:String,Age age:Int,Address address:String)->String{
    return name+"\(age)"+address
}
personInfo(Name: "xiao3", Age: 18, Address: "America")

5、传数值和地址
//传数值

func changeValue(var num:Int){
    num++
    print(num)
}
var number = 3
changeValue(number)
print(number)

//传地址(关键字inout可以将实参的地址传递给形参)
func changeValue(inout num:Int){

    num++
    print(num)
}
var number = 3
changeValue(&number)
print(number)

6、函数可以嵌套

func test1() {

    func test2() {
        print("test2")
    }
    test2() //嵌套的函数要在内部调用
    print("test1")
}
//调用函数
test1()
内容概要:《2024年中国城市低空经济发展指数报告》由36氪研究院发布,指出低空经济作为新质生产力的代表,已成为中国经济新的增长点。报告从发展环境、资金投入、创新能力、基础支撑和发展成效五个维度构建了综合指数评价体系,评估了全国重点城市的低空经济发展状况。北京和深圳在总指数中名列前茅,分别以91.26和84.53的得分领先,展现出强大的资金投入、创新能力和基础支撑。低空经济主要涉及无人机、eVTOL(电动垂直起降飞行器)和直升机等产品,广泛应用于农业、物流、交通、应急救援等领域。政策支持、市场需求和技术进步共同推动了低空经济的快速发展,预计到2026年市场规模将突破万亿元。 适用人群:对低空经济发展感兴趣的政策制定者、投资者、企业和研究人员。 使用场景及目标:①了解低空经济的定义、分和发展驱动力;②掌握低空经济的主要应用场景和市场规模预测;③评估各城市在低空经济发展中的表现和潜力;④为政策制定、投资决策和企业发展提供参考依据。 其他说明:报告强调了政策监管、产业生态建设和区域融合错位的重要性,提出了加强法律法规建设、人才储备和基础设施建设等建议。低空经济正加速向网络化、智能化、规模化和集聚化方向发展,各地应找准自身比较优势,实现差异化发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值