Conditional, Ternary 运算符的使用

news/2024/7/5 1:45:47

1. Conditional 条件运算符的使用

  1.1 实现

/// 条件语句
struct ConditionalBootcamp: View {
    @State var showCircle: Bool = false
    @State var showRectangle: Bool = false
    @State var isLoading: Bool = false
    
    var body: some View {
        //conditionalView1
        conditionalView2
    }
    
    /// 方式二
    var conditionalView2: some View{
        VStack(spacing: 20) {
            
            Button("Is Loading: \(isLoading.description)") {
                isLoading.toggle()
            }
            
            if isLoading{
                ProgressView()
            }
            Spacer()
        }
    }
    
    /// 方式一
    var conditionalView1: some View{
        VStack(spacing: 20) {
            Button("Circle Button: \(showCircle.description)") {
                showCircle.toggle()
            }
            Button("Rectangle Button: \(showRectangle.description)") {
                showRectangle.toggle()
            }
            if showCircle {
                Circle()
                    .frame(width: 100, height: 100)
            }
            if showRectangle{
                Rectangle()
                    .frame(width: 100, height: 100)
            }
            if showCircle && showRectangle{
                RoundedRectangle(cornerRadius: 25)
                    .frame(width: 200, height: 100)
            }
            Spacer()
        }
    }
}

  1.2 效果图:

    1) 方式一:

     2) 方式二:

2. Ternary 三目运算符的使用

  2.1 实现

/// 三目运算符
struct TernaryBootcamp: View {
    @State var isStartingState:Bool = false
    
    var body: some View {
        VStack{
            // 按钮
            Button("Button: \(isStartingState.description)") {
                isStartingState.toggle()
            }
            // 文本
            Text(isStartingState ? "Starting State" : "Ending State")
            // 圆角矩形
            RoundedRectangle(cornerRadius: isStartingState ? 25 : 0)
                .fill(isStartingState ? Color.red : Color.blue)
                .frame(width: isStartingState ? 200 : 50,
                       height: isStartingState ? 100 : 50)
            Spacer()
        }
    }
}

  2.2 效果图:


http://lihuaxi.xjx100.cn/news/1197634.html

相关文章

Windows - 如何判断一个DLL已经注册

在DOS界面提示符下运行命令,在注册表中查找包含此DLL文件名的条目,查找出的结果如下(以msadox.dll为例): 这个查找结果,和你打开注册表编辑器手动查找该DLL文件名是一样的。 C:\Users\>reg query HKLM\…

chatgpt赋能python:如何用Python编写抽奖程序

如何用Python编写抽奖程序 抽奖活动是很多企业和组织引发用户关注和参与的一种有效手段。而Python作为一种简单易学,功能强大,受欢迎的编程语言,它可以很好地帮助我们实现抽奖程序的编写。本篇文章将介绍如何用Python编写抽奖程序&#xff0…

详细讲解axios封装与api接口封装管理

一、前言 axios的封装和api接口的统一管理,其实主要目的就是在帮助我们简化代码和利于后期的更新维护。 在vue项目中,和后台交互获取数据这块,我们通常使用的是axios库,它是基于promise的http库,可运行在浏览器端和no…

promethues 之PromQL数据类型介绍(二)

promethues 之PromQL数据类型介绍(二) 1、PromQL 介绍 PromQL是promethues 监控系统内置的一种查询语言,类似于MySQL的SQL语句,该语言仅用于读取数据。PromQL是我们学习Promethues最困难也是最重要的部分。当Promethues从系统和服务收集到指标数据时&…

【已解决】微信小程序报错:request 合法域名校验出错 如若已在管理后台更新域名配置,请刷新项目配置后重新编译项目,操作路径:“详情-域名信息”

【已解决】微信小程序报错:request 合法域名校验出错 如若已在管理后台更新域名配置,请刷新项目配置后重新编译项目,操作路径:“详情-域名信息” 场景复现解决方法 知识专栏专栏链接微信小程序专栏https://blog.csdn.net/xsl_hr/c…

中国存储竞争新格局:曙光掌舵分布式存储市场

近日,赛迪顾问发布了《中国分布式存储市场研究报告(2023)》。 作为数字经济的底座,数据存储的重要性日益凸显。 近年来,凭借高性能、高可靠性、高可扩展性等优势,基于分布式架构的分布式存储迎来了蓬勃发…

论文解读 | 利用图形卷积核在距离图像中实现高效的3D目标检测

原创 | 文 BFT机器人 01 摘要 该论文提出了一种基于范围图像的高效3D物体检测方法,通过利用图卷积核来提取每个像素周围的局部几何信息。 作者设计了一种新颖的2D卷积网络架构,并提出了四种替代内积核心的卷积核,以注入所需的三维信息。该方法…

linux nohup命令如何使用?

Linux nohup 命令 nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。 nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup…