Swift实用小册01:常量变量、数据类型、命名方式、代码注释

举报
文如秋雨 发表于 2022/08/30 12:27:06 2022/08/30
【摘要】 在本章中,你将以实际案例出发,来了解Swift语言的一些基础知识点,当你对这些基础概念有所了解后,往后将更加容易读懂和设计代码。前言和Apple官网或者网上分享的教程类文章不同,我将以实际开发角度讲述Swift语言的一些概念和用法,方便大家更好地学习和掌握Swift语言。这同时也是对自己学习Swift语言过程的知识整理。如有错误,以你为准。常量、变量在iOS开发过程中,我们常常需要提前声明好...
在本章中,你将以实际案例出发,来了解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是整型,title是String字符串类型,image是图片类型,enableUsed是布尔类型。

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

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

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)
}

快来动手试试吧!
如果本专栏对你有帮助,不妨点赞、评论、关注~
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。