天天看点

Swift实用小册01:参数声明、数据类型、命名方式、代码注释

​在本章中,你将以实际案例出发,来了解​

​Swift​

​语言的一些基础知识点,当你对这些基础概念有所了解后,往后将更加容易读懂和设计代码。

前言

和Apple官网或者网上分享的教程类文章不同,我将以实际开发角度讲述​

​Swift​

​​语言的一些概念和用法,方便大家更好地学习和掌握​

​Swift​

​语言。

这同时也是对自己学习​

​Swift​

​语言过程的知识整理和输出。

如有错误,以你为准。

参数声明

在​

​iOS​

​开发过程中,我们常常需要提前声明好常量和变量,方便在之后的代码中进行引用。

常量

常见的MVVM开发模式中,我们可以创建一个​

​Constants.swift​

​​文件,将我们在​

​App​

​开发中用到的常量进行声明。

以下面的代码为例:

import SwiftUI

public struct Constants {

    //底部导航栏页面名称
    public static let homeViewName = “首页"
    public static let mineViewName = "我的"
}      

在上面的例子中,我们使用​

​let​

​​来声明​

​homeViewName​

​​、​

​mineViewName​

​两个常量,它们的值分别是首页、我的。

常量表示着我们这两个参数的值是不变的,也就是​

​homeViewName​

​​所对应的值“首页”,在​

​App​

​中就是固定叫做首页,而不会中途更新为别的值。

变量

不变的是常量,而在开发过程中可能会被赋予新的值,这个叫做变量,以登录页面为例:

//是否展示提示Toast

var showToast = false
var showToastMessage = "登录成功"      

我们使用​

​var​

​​声明了​

​showToast​

​​、​

​showToastMessage​

​​两个变量,它们的值分别是​

​false​

​​、“​

​登录成功​

​”。

这里我们为什么要定义变量而不是常量,是因为这两个参数的值是会随着规则而变化。

我们默认是不展示​

​Toast​

​​,也就是​

​showToast​

​​的值默认为​

​false​

​​,当我们业务上将​

​showToast​

​​重新赋值为​

​true​

​时,此时业务状态可能有两种:登录成功、登录失败。

那么在登录失败的情况下,​

​showToastMessage​

​​展示的文字就不是“​

​登录成功​

​​”了,有可能是“​

​请输入账号​

​​”、“​

​请输入密码​

​”。

因此这里我们​

​showToast​

​​、​

​showToastMessage​

​​两个变量,我们就会使用​

​var​

​进行声明。

小结:使用let声明常量,常量的值基本不变,使用var声明变量,变量可以在不同业务下赋予新的值。

数据类型

在我们声明常量或者变量时,​

​Swift​

​是自动根据参数的值来判断类型的,示例:

//版本号

let versionNumber = “1.0.0"      

虽然我们没有给​

​versionNumber​

​​标明是什么类型,但​

​Swift​

​​根据参数的值判断出了​

​versionNumber​

​​是​

​String​

​字符串类型。

另外,我们也可以自己声明好参数的类型,把参数加上类型注解。

在​

​MVC​

​​或者​

​MVVM​

​​开发模式中,​

​Model​

​的部分,我们就需要为声明的常量/变量添加类型注解,因为它们是没有初始值的。

import SwiftUI

struct Model: Identifiable{

    var number: Int
    var title: String
    var image: UIImage
    var enableUsed: Bool      

在上面的例子中,我们声明了​

​4​

​​个变量:​

​number​

​​、​

​title​

​​、​

​image​

​​、​

​enableUsed​

​​,其中​

​number​

​​是​

​Int​

​​整型,​

​title​

​​是​

​String​

​​字符串类型,​

​image​

​​是​

​UIImage​

​​图片类型,​

​enableUsed​

​​是​

​Bool​

​布尔类型。

另外一个知识点是,一旦定义了参数类型后,在后面我们就不能更改它的类型,而对于常量来说,除了类型不能更改外,值也不能更改。

如果我们想声明一个指定类型的参数时,我们可以指定获得的类型。

let pointNumber = 2.1
let intNumber = Int(pointNumber)

print("\(intNumber)”)
//输出的结果为2      
小结:没有声明参数类型时,Swift会自动根据参数值判断参数类型,变量、常量类型不能直接更改,常量的值也不能更改。

命名方式

在实际开发过程中,无论是声明的参数、结构体、还是页面名称,我们在命名的时候需要遵照一定的原则。

常见的命名方式为“​

​驼峰命名法​

​​”,也就是开始单词为小写,后面组合的单词为写。示例:​

​showToastMessage​

​。

一般我们命名页面也好,方法也好,声明参数也罢,建议使用英文单词组合,当然​

​Swift​

​​也支持中文、​

​emoji​

​,例如:

//不建议的声明方式

let 我喜欢的 = “你"
let 😊 = ""      

但实际开发中,为了​

​统一规范​

​​,建议都还使用​

​英文​

​进行命名。

代码注释

代码注释一般会出现在两种业务场景,一是代码块命名,我们使用“​

​//​

​”进行注释,注释的部分不参与运算。

//标题&LOGO
private var loginImageView: some View {
    VStack(spacing: 20) {
        Image(Constants.appLogo)
            .resizable()
            .frame(width: 80, height: 80)
            .cornerRadius(8)
        Text(Constants.appName)
            .font(.system(size: 17))
            .foregroundColor(.black)
        }
    }      

另一种是多行注释,使用“​

​/*注释内容*/​

​”,常常用在实现方法的解释,或者注释这个代码块。

/*
下面的方法是跳转到AppStore
先声明URL地址,然后带着App的appid执行跳转AppStore的逻辑
*/

func  gotoAppStore(appId: String) {
    let urlPrex = "itms-apps"
    let appUrl = urlPrex + "://itunes.apple.com/app/id" + appId
    let appNsUrl = NSURL(string: appUrl)
    UIApplication.shared.open(appNsUrl! as URL, options: [:], completionHandler: nil)
}