Swift ?!使用

Swift是一种开源的编程语言,由苹果公司在2014年发布。它结合了C和Objective-C的优点,并用更简洁的语法和更强大的特性进行了改进。Swift在iOS和macOS应用开发中广泛使用,并且逐渐在其他领域得到了广泛应用。

Swift基础

Swift是一种静态类型的编程语言,它可以在编译时进行类型检查以提高代码质量和性能。Swift拥有强大的类型推断功能,可以根据上下文自动推断变量和表达式的类型。这使得Swift代码更加简洁和易读。

变量和常量

在Swift中,使用var关键字声明变量,使用let关键字声明常量。变量和常量的类型可以明确指定,也可以由编译器根据赋值自动推断。

var age: Int = 30
let name = "John"

数据类型

Swift提供了多种内置的数据类型,包括整数、浮点数、布尔值、字符串等。

var count: Int = 10
var price: Double = 3.99
var isFinished: Bool = false
var message: String = "Hello, World!"

控制流

Swift支持常见的控制流语句,如条件语句、循环语句等。

if age >= 18 {
    print("You are an adult")
} else {
    print("You are a minor")
}

for i in 1...5 {
    print(i)
}

while count > 0 {
    print(count)
    count -= 1
}

函数

Swift中的函数使用func关键字进行声明,可以有多个参数和返回值。

func add(a: Int, b: Int) -> Int {
    return a + b
}

let sum = add(a: 3, b: 5)
print(sum) // 输出: 8

类和对象

Swift支持面向对象编程,可以定义类、创建对象,并调用对象的方法和访问对象的属性。

class Person {
    var name: String
    var age: Int
    
    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }
    
    func sayHello() {
        print("Hello, my name is \(name)")
    }
}

let person = Person(name: "Tom", age: 25)
person.sayHello() // 输出: Hello, my name is Tom

Swift ?!

除了基础语法,Swift还提供了许多强大的特性,使开发者能够更高效地编写代码。

可选类型

在Swift中,可以使用可选类型表示一个值可能存在或不存在。可选类型使用?进行标识。

var optionalName: String? = "John"
optionalName = nil

可选类型可以用于处理可能为空的值,避免空指针异常。

值类型和引用类型

在Swift中,值类型和引用类型有着明显的区别。值类型在赋值和传递时会进行复制,而引用类型在赋值和传递时只是传递指针。

struct Point {
    var x: Int
    var y: Int
}

var p1 = Point(x: 10, y: 20)
var p2 = p1
p2.x = 30

print(p1.x) // 输出: 10
print(p2.x) // 输出: 30
class Person {
    var name: String
    
    init(name: String) {
        self.name = name
    }
}

var person1 = Person(name: "John")
var person2 = person1
person2.name = "Tom"

print(person1.name) // 输出: Tom
print(person2.name) // 输出: Tom

扩展

扩展是Swift中一种强大的功能,可以为现有的类、结构体、枚举类型添加新的方法、计算属性等。

extension Int {
    func square() -> Int {
        return self * self
    }
}

let number = 5
print(number.square()) // 输出: 25

泛型

Swift支持泛型,可以编写出更加灵活和可复用的代码。泛型可以应用于函数